0

我们创建了一个小程序来检测 Xeon Phi,这是我们的代码片段

        std::vector<cl::Platform> platformList(5);
    std::vector<cl::Device> deviceList;
    cl::Platform::get(&platformList);
    if(platformList.size() == 0){
            std::cout << "No Platforms found. Check OpenCL installation!" << std::endl;
            exit(1);
    }

    for(i=0; i<platformList.size(); i++){
    // for(i=0; i<1; i++){
            std::cout << platformList[i].getInfo<CL_PLATFORM_NAME>()<< std::endl;
            platformList[i].getDevices(CL_DEVICE_TYPE_ALL, &deviceList);
            if(deviceList.size() == 0){
                    std::cout << "No Devices found. Check OpenCL installation!" << std::endl;
                    exit(1);
            }

            for(j=0; j<deviceList.size(); j++){
                    // dims = deviceList[j].getInfo<CL_DEVICE_MAX_WORK_ITEM_SIZES>();
                    // for(k=0; k<dims.size(); k++)
                    // std::cout << dims[k] << std::endl;
                    std::cout << deviceList[j].getInfo<CL_DEVICE_NAME>()<< std::endl;
            }
    }

    cl::Device device = deviceList[j-1];

    std::cout << "Using device: " << device.getInfo<CL_DEVICE_NAME>() << std::endl;

但它没有检测到 Phi,我们只得到这个输出;

    Intel(R) OpenCL
      Intel(R) Xeon(R) CPU E5-2609 v2 @ 2.50GHz
Using device:       Intel(R) Xeon(R) CPU E5-2609 v2 @ 2.50GHz
Hello World

你知道我们做错了什么吗?

PS 下面你能找到 micinfo 输出吗

    MicInfo Utility Log
Copyright 2011-2013 Intel Corporation All Rights Reserved.

Created Thu Oct  2 15:04:08 2014


    System Info
        HOST OS         : Linux
        OS Version      : 2.6.32-431.el6.x86_64
        Driver Version      : 3.2-1
        MPSS Version        : 3.2
        Host Physical Memory    : 16274 MB

Device No: 0, Device Name: mic0

    Version
        Flash Version        : 2.1.02.0390
        SMC Firmware Version     : 1.16.5078
        SMC Boot Loader Version  : 1.8.4326
        uOS Version          : 2.6.38.8+mpss3.2
        Device Serial Number     : ADKC32800437

    Board
        Vendor ID        : 0x8086
        Device ID        : 0x225d
        Subsystem ID         : 0x3608
        Coprocessor Stepping ID  : 2
        PCIe Width       : Insufficient Privileges
        PCIe Speed       : Insufficient Privileges
        PCIe Max payload size    : Insufficient Privileges
        PCIe Max read req size   : Insufficient Privileges
        Coprocessor Model    : 0x01
        Coprocessor Model Ext    : 0x00
        Coprocessor Type     : 0x00
        Coprocessor Family   : 0x0b
        Coprocessor Family Ext   : 0x00
        Coprocessor Stepping     : C0
        Board SKU        : C0PRQ-3120/3140 P/A
        ECC Mode         : Enabled
        SMC HW Revision      : Product 300W Active CS

    Cores
        Total No of Active Cores : 57
        Voltage          : 0 uV
        Frequency        : 1100000 kHz

    Thermal
        Fan Speed Control    : On
        Fan RPM          : 1200
        Fan PWM          : 20
        Die Temp         : 45 C

    GDDR
        GDDR Vendor      : Elpida
        GDDR Version         : 0x1
        GDDR Density         : 2048 Mb
        GDDR Size        : 5952 MB
        GDDR Technology      : GDDR5 
        GDDR Speed       : 5.000000 GT/s 
        GDDR Frequency       : 2500000 kHz
        GDDR Voltage         : 1501000 uV
4

1 回答 1

2

您可能想查看https://software.intel.com/en-us/articles/opencl-runtime-release-notes。它比 Cicada 指向您的页面更新,并提供了指向英特尔® OpenCL™ 运行时 14.2 的链接。

libmic_device.so 包含在 OpenCL 运行时中,默认情况下位于 /opt/intel/opencl{version_number}/lib64 中。您需要确保该路径位于您的 LD_LIBRARY_PATH 环境变量中。您还需要确保 /opt/intel/opencl{version_number}/mic 在您的 MIC_LD_LIBRARY_PATH 环境变量中。

您已经安装了英特尔 MPSS;否则 micinfo 将无法工作。libcoi_host.so 包含在 MPSS 中并安装在 /usr/lib64 中,它已经在您的库搜索路径中。

您正在运行的 MPSS 版本是 3.2-1。发布说明网页上 OpenCL 运行时 14.1 的“新增功能”说明指出,版本 14.1 在 MPSS 3.2-1 下不稳定。我试图找出是否有不同版本的运行时可以与更稳定的 MPSS 3.2-1 一起使用,或者是否唯一的建议是安装更新的 MPSS。您可以在https://software.intel.com/en-us/articles/intel-manycore-platform-software-stack-mpss找到最新的 MPSS 版本。

于 2014-10-03T19:47:19.883 回答