OpenCL on Apple albeit being the first implementation to ship to standard users,
have its set of peculiarities and limitations:
As said Apple OpenCL imp altough supporting CPUs and GPUs the backends are done by Apple and so is different from imps shipped by AMD and Nvidia..
First limitation in Apple imp is regarding to hardware graphic drivers..
As you my know high end graphics cards are shipped with more than 6 months of delay normally.. so for example there is no AMD 5xxx series support and it's not expected at least at mid 2010..
AMD OpenCL
As you may know AMD 5xxx series is the first GPU from AMD designed with GPU computing standards in mind and has byte addresable stores, atomic instructions, general access local mem, etc.. among other things all of this lacking in 4xxx series which are currently only supported AMD OpenCL cards..
This features were standard in CUDA since G80 excepting atomics.. and all of this are exposed as OpenCL ex so 4xxx OpenCL support is barely minimal (well think OpenCL without extensions with bring up to CUDA functionality..)
Regarding OpenCL updates 10.6.1 shipped with no updates so only has had one update in 10.6.2.
This fixed several AMD bugs in own Apple OpenCL demos.. so 10.6.2 is the first driver at least having no issues in Apple OpenCL source code..
Regarding AMD OpenCL implementation I have some questions:
In AMD imp image support is not currently supported altough hardware has support for it I don't know if Apple imp has support enabled, also 48xx series support doubles in hardware and AMD imp is also lacking currently (expected through 2010) so Apple imp I don't know if and if yes when there are going to support it..
Also what about getting binaries (AMD imp currently not) in Apple imp..
All of this is going to be answared in an upcoming post when I have installed Snow Leopard 10.6.2 in a 48xx MAC..
So resuming I have questions about Apple OpenCL on AMD :
-Doubles?
-Image support?
-Getting device binaries kernels..?
-All OpenCL Apple demos run?
-Local mem is present and if yes through global mem ever or uses limited local mem features if kernel is simple enough.. (AMD imp not fixed..)
All are if are going to be supported and when.. I expect over time to be supported by AMD imp in Windows and Linux..
Also don't expect all other OpenCL extensions to be supported as are a limitation of hardware support..
Nvidia OpenCL
Nvidia support in Apple OpenCL drivers have been as good as own Nvidia imp in early times (since May June..) until begin of this month..
in that times it supported OpenGL interop.. Now Nvidia supports OpenGL interop and also doubles..
So what's going on in doubles on MAC?
I think will be supported in upcoming releases..
I also think in pre 195 drivers were issues with local mem atomics (GT2xx stuff) not being working, I would guess now are working so it's this issue present in Apple?..
Also Nvidia OpenCL SDK says there are samples that are not working this since pre 10.6.2 times. Unfornately 10.6.2 was released and still OpenCL SDK in CUDA 3.0beta shows this as a limitation.. it's really fixed?..
So Nvidia questions:
-Doubles?
-Local mem atomics work?
-Nvidia OpenCL samples ocl3dftd work?..
Apple backend
Release of Apple OpenCL FFT lib has shown (see readme.txt) that exist bugs in both Apple runtime and code generation for GPUs (all? which?) who forbid getting full perf on these high perf code..
Lickily is aware of the issues and has said that it has internally fixed these and recovered a 2X boost.. nearly to theoretical perf seems..
Seeing from the time of the release it's sure this fixes would come post 10.6.2 so perhaps for 10.6.3 time..
Also luckily when such codes get running at full speed I would consider OpenCL finally mature on MAC..
Wednesday, 25 November 2009
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment