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.
1719 Discussions

Why not possible to do cross-development ?

Raistmer
Beginner
326 Views

I build OpenCL apps for different hardware (ATi, nVidia) on single AMD APU-based netbook. nVidia SDK had no problems to install and apps built work OK on hosts with nVidia GPU installed. There is no need to have actual hardware when one linking app with corresponding OpenCL library (nVidia or AMD in my case).

But with Intel's OpenCL SDk situation is very different. It just refused to install on my development machine at all complaining about not compatible hardware. But I don't want to run app there, I want to build app there cause it's my dev host, it has VS and other tools installed.

So, why Intel refused to allow cross-compilation ?

 

0 Kudos
5 Replies
Raghupathi_M_Intel
326 Views
The SDK doesnt come with emulation environment and has dependencies on the hardware, the graphics driver (if you want to run on GPU) etc. So you cannot install it on non-Intel platforms. For example, when targetting CPU devices, how will the compiler know what vector instructions to generate without knowing what the target CPU device the app will be running on? We can argue similarly in case of GPU device also. I am curious - does Nvidia's SDK allow you to build your app even though you do not have their driver or graphics card installed? Thanks, Raghu
0 Kudos
Raistmer
Beginner
326 Views
Yes, sure, it allows to build apps w/o any issues. And it's the way I do NV builds, on AMD APU C-60 based host. Because all you need to know at build time is where OpenCL headers and where OpenCL.lib are located. Kernel compilation performed on hardware-capable host surely (app shipped with text-based CL file and caches its binary kernels on first run). This allows good compatibility with wide range of hardware. Besides of CL file there is nothing hardware dependent OpenCL SDK needs to kow and CL file compiled by OpenCL runtime at execution time. Why just the same approach ignored by Intel ? For example, I can build SSSE3-enabled binary on AMD host that doesn't support SSSE3 instruction set. That's cross-compilation for - to allow build app not on the same platform where it will run...
0 Kudos
Raghupathi_M_Intel
326 Views
Actually you are right (I misspoke in my post above) there shouldn't be any dependencies as far as building the opencl application is concerned. It appears that the installer probably is built on incorrect assumptions and it should be possible to install some components on any platform for cross-compilation scenarious like yours. But currently we dont allow that. I'll dig some more into it and get back to you on whether we have any such plans in future releases. Thanks, Raghu
0 Kudos
Raistmer
Beginner
326 Views
Thanks! It's really very inconvenient to setup full development environment on another host just to be able to support Intel's OpenCL platform, I hope this will be solved in upcoming releases.
0 Kudos
Raghupathi_M_Intel
326 Views
I have submitted a feature request and will keep you posted on the progress. Thanks, Raghu
0 Kudos
Reply