Hi,
if you have following OpenCL shipping implementations it's a mess to provide executables that are future proof running tomorrow.. Important part of that is that ABI of the libraries has not been stabilized (I mean calling conventions and names of exported functions)..
A brief resume is that (on Windows):
May 2009 Nvidia ships with cdecl calling convention and clean exported names (say clGetPlatformIDs exported name is clGetPlatformIDs)
August 2009 AMD ships with stdcall calling convention and dirty exported names (say _clGetPlatformIDs@12)
October 2009 AMD ships with stdcall calling convention and clean exported names
Seems that on Octber 2009 (found from an Nvidia employee on Nvidia forums) Khronos agreed
that on Windows functions must use stdcall calling convention following Windows APIs and OpenGL ICD..
So seems that currently AMD SDK is using finally with all the right bits..
Now it's time to fix Nvidia libraries (Nvidia employee on Nvidia forums agreed that next SDK will have it fixed)..
All this effort is a the key first step part of getting an OpenCL ICD on Windows..
Note that I don't understand why but seems that all of this is on Windows x32 as in Windows x64
all works fine.. perhaps is that headers (cl_platform) check _WIN32 and is not in effect in Win64 or that the two calling methods are equivalent on Win64..
Note that on Linux currently there are no issues..
So briefly the conclusion is that examples from one SDK are running on the another (nvidia,amd) either way (well excepting implementation differences as lack of existing extensions)
I say all of that because of two things:
* I want to have a future proof OpenCL-Z! (see next psot)
* I want to make an OpenCL wrapper supporting multiplatform support something I'm not fully sure it's going to be added in OpenCL ICD.. This would add
Also I want to add three things to the wrapper:
* OpenGL emulation on OpenCL backends with image support (implement gl_khr_sharing emulation support)
* Getting AMD IL code (join previous work)
* Building kernels AMD IL code or device assembly..
Friday, 23 October 2009
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment