HD 3870 already outdated for OpenCL. Am I na´ve for expecting otherwise?
To my great surprise, after battling with getting the AMD APP (OpenCL) SDK to work in Maverick with fglrx, and actually stopping up and reading the System Requirements, I notice that my graphics card isn't supported. It seems the 4xxx series isn't even properly supported (beta level), so I fear that my card will never be.
Am I not being fair expecting a ~3 year old graphics card to be supported by new technologies? Are there any technical difficulties in implementing OpenCL on older GPUs because of different hardware? Or will support come for the 3xxx series at some point?
I feel like I bought that card yesterday... Maybe I'm just getting old (too)?
HD38xx has been released in 2007, OpenCL 1.0 has been released in 2008.
How exactly is ATI supposed to add hardware features required for an API that wasn't available at the time of GPU design?
That was the part I was in doubt about, whether the various OpenCL functions are all implemented in hardware, or whether they run on the already present vertex shaders and what else the graphics card has (I don't know much about that, as you might be able to tell ). But that may be the exception rather than the rule, "emulating" such functions on shaders? Like we hopefully will see with video decoding acceleration in Gallium.
Of course if the various OpenCL functions need to be implemented in hardware, it's no surprise that a card out-dating a standard is incompatible with that standard.
Newer versions of OpenCL require new features such as Double Precision Floating Point. This doesn't exist in old hardware, and is not worth implementing in software (where you would punt to anyway).
Note that OpenCL (particularly from AMD) should handle the CPU too. So your GPU won't be supported, but your CPU will.
there are much older cards support openCL because openCL is mostly a copy paste work of CUDA but the reverence card for cuda is the old old Geforce8800 card.
yes your card hd38xx is younger than the 8800 geforce but the 8800 card do have 2 nividia only caches and the openCL spec (read cuda spec) build the stuff arround this 2 caches.
the hd4000 ad 1 of this chaches and the second one is emulated in vram.
an hd5000 card is the first in supporting this 2 geforce8800 caches.
means an hd5000 is the first amd card for openCL.
remember openCL... is a spec from NVIDIA+Apple based on NVIDIA hardware.
if you search you can find many posts about this tropic in this forum.
Interesting! I didn't know that Apple were the original authors, and that Nvidia were so heavily involved. But I guess it makes sense that Nvidia assisted them as much as they did, as they are the ones with the most experience regarding GPGPU.
Kudos to Apple for releasing this as an open spec!
To the OP:
I just found out the same with regards to my Radeon 4770 a few days ago. I've been developing an OpenCL-accelerated decoder for VP8/WebM video (not finished yet), and I've had to resort to CPU-based CL on my desktop (using the Stream SDK v2.3). My laptop (GF 9400M) works just fine using Nvidia's binary drivers.
The problem with my card: While OpenCL 1.0 is supported, the card doesn't support the cl_khr_byte_addressable_store extension, which makes it useless for what I'm working on.
*crosses fingers* I'm hoping my thesis advisor pulls through and lends me one of the GTX 580's he just bought for one of his clusters.
^ I guess that's the price we pay for enjoying hardware acceleration: when the demands for what needs to be accelerated change, the hardware has to change too :\
I'm really starting to look forward to OpenBenchmarking.org appearing. I'd really like to be able to just get a list of OpenCL compatible Linux graphics cards, and list them in ascending order of "OpenCL-power" per dollar. It's really a hassle to find out which graphics card to choose for Linux as things are now.
Tags for this Thread