OpenCL* for CPU
Ask questions and share information on Intel® SDK for OpenCL™ Applications and OpenCL™ implementations for Intel® CPU.
Announcements
This forum covers OpenCL* for CPU only. OpenCL* for GPU questions can be asked in the GPU Compute Software forum. Intel® FPGA SDK for OpenCL™ questions can be ask in the FPGA Intel® High Level Design forum.
1718 Discussions

Incorrect Intel platform results as compared to nVidia/AMD

vladimirsson
Beginner
522 Views
Hello,

I have three OpenCL platforms installed on my Ubuntu 10.04 amd64: nVidia, AMD and Intel. I noticed that my FFT kernel gives incorrect results on the Intel platform. I managed to reduce it to the following:

[bash]__kernel void test(__global float *out) { float a[8]; __local float smem[32]; for(int q=0; q < 32; q++) { smem = q; } barrier(CLK_LOCAL_MEM_FENCE); for(int q=0; q < 8; q++) { a = 0; } int thread_id = get_local_id(0); if(thread_id < 16) a[0] = 0; a[0] = smem[thread_id]; a[1] = 0; barrier(CLK_LOCAL_MEM_FENCE); smem[thread_id] = a[0]; smem[thread_id + 16] = a[1]; barrier(CLK_LOCAL_MEM_FENCE); if(thread_id < 16) out[thread_id] = a[0]; a[0] = 0; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0; a[6] = 0; if(thread_id < 0) out[0] = a[1]; }[/bash] Being executed with global size=16 and local size=16 it returns [0 .. 15] array on AMD (CPU) & nVidia (GPU), but [15 .. 15] on Intel (CPU). C and Python programs for reproduction are attached (C code is a bit messy and without error checking). The output I am getting:

Platform: NVIDIA CUDA
Device: Tesla C2050 / C2070
0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000
Platform: Intel OpenCL
Device: Intel Xeon CPU E5620 @ 2.40GHz
15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000 15.000000
Platform: AMD Accelerated Parallel Processing
Device: Intel Xeon CPU E5620 @ 2.40GHz
0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000

Does anyone know what can be causing such behavior?
0 Kudos
1 Reply
Shiri_M_Intel
Employee
522 Views

Hi
Intel SDK currently doesnt support Ubuntu 10.04.
However we will look into your kernel.
Thanks, Shiri

0 Kudos
Reply