If you see that post a lot of my critic relates to graphics things and also
to the current state of the matter.. i.e implementations without extensions (AMD?) are less capable than DX compute standard.. and also more alpha state
But its all not that bad for OpenCL..
OpenCL is better:
*Run on CPU!
i.e more devices support it (PS3 Cell, CPUs,)
* MacOs and Linux support
*doubles currently work on Nvidia GPUs and CPUs on Mac OS X.. doubles on Compute shader
doesn't currenly work (see Voxilla Mandelbrot thread).. I expect fixed in December SDK..
*Local workgroups can be wisely sized by runtime
*Task support: Altough it's only presently useful for CPUs (IBM has an options sample using tasks, in order ques (see events))
Hey only for CPUs?, who knows current GPUs seems to be bad from current knowledge but anyway Larrabe would allow to use it eficiently together with SIMD mode.. and related a paper by Aila on raytracing
suggest that somewhat queue model taking tasks of a queue with warp granurality (i.e. batches of 32 elements) can be good
* Manage multiple devices at the same time each also with it's GL interop: why not I think DX compute shader is more linked to a device and in any case MultiGPUs is more awakly used in DX..
* Multiple Command queues (it's that concept in DX Compute?) to use async kernel and mem copies and simultaneous kernel (hello Fermi) support and twin mem transfers (hello another time Fermi)
Also queues can be used in out of order meaning work can be taken at any order.. OpenCL to DX Compute: I can can you?
*Synch between execution of multiple queues (and devices) via events..
In theory good for pipeline models and also work as for graphs of dependencies (see GRAMPS and intel work)
*Store binaries of kernels in manufacturers format and send without recompilation (I think you can store binaries but the bad thing if things hasn't changed is that is stored in Microsoft instruction format.. it seems that
is also bad for manufacturers that they decompile and compile with the optimization to their arquitectures..
As PTX and AMD IL are also supposed to work over generations of hardware seems more suited to their driver requiring less work and possible more performance
*DX and OGL interop
*Possible with time better, at least improve more timely than DX Compute similar to OpenGL with vendor extensions (nvidia fermi features?) (ATI 5xxx sad,gds,wave sync)
Anyway know that OpenCL and DX Compute provide equal capabilty and above shaders (well pre dx11 shaders) and also are gpu vendor independent so seems that GPGPU programming with GLSL,CG is a lost of time at least if not is image related..
All have CUDA 1.0 functionality i.e. scatter to mem (minus byte addresing in OpenCL) and workgroups with shared mem and sync across workgroups (well at least in concept)
Sunday, 8 November 2009
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment