Kernel not linking properly on Xeon Phi accelerator

Kernel not linking properly on Xeon Phi accelerator

Hi,

My department has just installed a Xeon Phi accelerator in our research cluster and I want to test several simple OpenCL kernels on it.

Consdering the OpenCL execution portability, I just changed the device type of my host source code from CPU or GPU to ACCELERATOR, but the execution crashes when the host program tries to build the binary from the kernel file.

I have also tried to compile kernels offline using "ioc64", and it runs smoothly for CPUs:

-bash-4.1$ ioc64 -cmd=build -input=dummy.cl -device=cpu
Using device: CPU

Setting target instruction set architecture to: Default
Intel OpenCL CPU device was found!
Device name: Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
Device version: OpenCL 1.2 (Build 67279)
Device vendor: Intel(R) Corporation
Device profile: FULL_PROFILE
Compilation started
Compilation done
Linking started
Linking done
Kernel <dummy> was successfully vectorized
Done.
Build succeeded!

However, "ioc64" also fails, returning the following output:

-bash-4.1$ ioc64 -cmd=build -input=dummy.cl -device=acc

Setting target instruction set architecture to: Default
Intel OpenCL Xeon Phi Coprocessor device was found!
Device name: Intel(R) Many Integrated Core Acceleration Card
Device version: OpenCL 1.2 (Build 67279)
Device vendor: Intel(R) Corporation
Device profile: FULL_PROFILE
Compilation started
Compilation done
Linking started
Linking failed

Build failed!

Thank you so much in advance!

6 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

Hi Jorge,

Which version of MPSS do you have installed? Note that Intel® MPSS Update 3 or higher should be installed (available at http://software.intel.com/en-us/articles/intel-manycore-platform-softwar...). Could you please provide the logs from micinfo and miccheck utilities (/opt/intel/mic/bin/)?

Thanks,
Yuri

Hi,

Here is the output from "micinfo":

-bash-4.1$ ./micinfo
MicInfo Utility Log

Created Mon Jul 29 16:28:03 2013

System Info
HOST OS : Linux
OS Version : 2.6.32-358.6.2.el6.x86_64
Driver Version : 6720-13
MPSS Version : 2.1.6720-13
Host Physical Memory : 65932 MB

Device No: 0, Device Name: mic0

Version
Flash Version : 2.1.02.0386
SMC Firmware Version : 1.14.4616
SMC Boot Loader Version : 1.8.4326
uOS Version : 2.6.38.8-g5f2543d
Device Serial Number : ADKC24201340

Board
Vendor ID : 0x8086
Device ID : 0x2250
Subsystem ID : 0x2500
Coprocessor Stepping ID : 3
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 : B1
Board SKU : B1PRQ-5110P
ECC Mode : Enabled
SMC HW Revision : Product 225W Passive CS

Cores
Total No of Active Cores : 60
Voltage : 963000 uV
Frequency : 1052631 kHz

Thermal
Fan Speed Control : N/A
Fan RPM : N/A
Fan PWM : N/A
Die Temp : 45 C

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

And here the output form "miccheck"

-bash-4.1$ ./miccheck

miccheck 2.1.6720-13, created 14:49:30 Apr 30 2013
Copyright 2011-2013 Intel Corporation All rights reserved

Test 1 Ensure installation matches manifest : OK
Test 2 Ensure host driver is loaded : OK
Test 3 Ensure driver matches manifest : OK
Test 4 Detect all listed devices : OK
MIC 0 Test 1 Find the device : OK
MIC 0 Test 2 Check the POST code via PCI : OK
MIC 0 Test 3 Connect to the device : OK
MIC 0 Test 4 Check for normal mode : OK
MIC 0 Test 5 Check the POST code via SCIF : OK
MIC 0 Test 6 Send data to the device : OK
MIC 0 Test 7 Compare the PCI configuration : OK
MIC 0 Test 8 Ensure Flash version matches manifest : OK

Status: OK.

According to these logs, I suppose that the MPSS installed version is "2.1.6720-13", but I don't know if this number is directly related to the "update number" you mentioned in the last message.

Thanks,

Jorge.

hi, did you get the problem sorted out? how did you fix it? 

Hi,

First, sorry for not having closed the thread earlier, it has been a long time since I opened it...

Well, at last I got the problem sorted out. So, the solution I applied might be not very conventional, but it worked: since in our research cluster we also have some Nvidia Tesla K20 devices installed, I simply unloaded the module of Intel OpenCL driver and then I exchanged it for the CUDA one. By doing that the execution of the host program run smoothly for all kind of devices: CPUs, GPUs and the MIC too.

Thanks again to everyone,

Jorge,

Okay - thanks!

Well, my program runs on Intel CPU and MIC using intel opencl. However, when I moved the code to Tesla K20 cluster with Nvidia opencl loaded, it failed to work. The cluster has no intel opencl, only nvidia's. I might have to look into it again...

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui