PDA

View Full Version : OpenCL and AMD/ATI DX11 GPUs [spin-off]


Scali
25-Jan-2010, 16:21
That's interesting, I used to be a complete nvidiot, well at least I always used to buy their cards, but since the G80 I have been MR ATI man with this 4850 and like it a lot. I'll see how Fermi does but I can see myself going ATi again for the next upgrade.

I just bought an HD5770, my first ATi card since the 9600XT. I went for an HD5770 because it's cheap enough to just toss aside should the Fermi be compelling enough (my 8800GTS went the way of the dodo just a few months too soon, sadly).
I feel that currently nVidia doesn't have its hardware in order, and ATi doesn't have its software in order. For gaming the HD5770 is doing its job, but I am disappointed by the lack of OpenCL support. The 8800GTS did that lots better. On the other hand, DirectCompute is here now, and I wanted to use that anyway, as I use DX11 now.

mhouston
25-Jan-2010, 16:57
OpenCL runs on the 5770.

Scali
25-Jan-2010, 17:06
OpenCL runs on the 5770.

I didn't say it didn't work. I said that the support is lacking.
Did I mention that AMD devrel needs to improve lots?

rpg.314
25-Jan-2010, 17:37
I feel that currently nVidia doesn't have its hardware in order, and ATi doesn't have its software in order. For gaming the HD5770 is doing its job, but I am disappointed by the lack of OpenCL support. The 8800GTS did that lots better. On the other hand, DirectCompute is here now, and I wanted to use that anyway, as I use DX11 now.

Any particular quibs you have with their GPU ocl SDK? Is their dxcs support significantly different/better from their ocl support? I just installed their CPU sdk. Will start playing with it

My peeve with the CPU sdk is that their profiler doesn't work with it. Are we expected to use something like Code analyst to profile our ocl kernels?

DeanoC
25-Jan-2010, 17:57
I didn't say it didn't work. I said that the support is lacking.
Did I mention that AMD devrel needs to improve lots?
Erm in OpenCL land so does NV, at this point OpenCL support is lacking big time from all vendors but then its only just got here, so prehaps all vendors should be given a little bit of leyway?

And as its the path ATI/AMD are pushing, it seems reasonable there OpenCL will get better fast (as its both CPU and GPU for them, so pretty important!).

Scali
25-Jan-2010, 18:04
Erm in OpenCL land so does NV, at this point OpenCL support is lacking big time from all vendors but then its only just got here, so prehaps all vendors should be given a little bit of leyway?

AMD had a big mouth about OpenCL all this time. nVidia has been silent... so I didn't exactly expect such poor support going from an 8800GTS to a HD5770.
The only way to get OpenCL support is through some unofficial hotfix driver, which only supports a bare minimum of OpenCL features (nVidia supports quite a bit more)... and for some reason applications such as SiSoft Sandra still don't detect the OpenCL support.

rpg.314
25-Jan-2010, 18:04
I didn't say it didn't work. I said that the support is lacking.


Could you develop that point?

Erm in OpenCL land so does NV, at this point OpenCL support is lacking big time from all vendors but then its only just got here, so prehaps all vendors should be given a little bit of leyway?

Intel is MIA. Wonder what's up with them. It;s been more than a year now. And they haven't even released a beta. :roll:

DeanoC
25-Jan-2010, 18:13
AMD had a big mouth about OpenCL all this time. nVidia has been silent... so I didn't exactly expect such poor support going from an 8800GTS to a HD5770.
I have a issues with a 8800GTS refusing to work with OCL (stack fault on the first OCL call), but I guess its likely to be an unlucky combination of drivers etc. I don't claim all NV OpenCL is rubbish on the basis of a sample of one...

I know people have got it working with varying pro/con on each platforms, and I expect as it matures it will easy and more stable.

FrameBuffer
25-Jan-2010, 19:47
AMD had a big mouth about OpenCL all this time. nVidia has been silent... so I didn't exactly expect such poor support going from an 8800GTS to a HD5770.
The only way to get OpenCL support is through some unofficial hotfix driver, which only supports a bare minimum of OpenCL features (nVidia supports quite a bit more)... and for some reason applications such as SiSoft Sandra still don't detect the OpenCL support.

Been out of the loop for a bit but is there a OpenCL "caps-like" viewer available ?? IIRC, there used to be a OpenGL utility that you could run that would list the supported OGL features in a given (installed) driver. I know DX used to have s similiar app that relied upon DirectX caps ( ahh here it is : DirectX Caps Viewer DXCapsViewer.exe) (http://msdn.microsoft.com/en-us/library/ee417852(VS.85).aspx)

Edit** Hmm I guess I answered my own question: GPU Caps Viewer (http://www.ozone3d.net/gpu_caps_viewer/) - OpenGL and OpenCL Graphics Card Information Utility, GPU Caps Viewer 1.8.2 - Windows XP / Vista 32-bit (2009.12.28)

Scali
25-Jan-2010, 20:43
Edit** Hmm I guess I answered my own question: GPU Caps Viewer (http://www.ozone3d.net/gpu_caps_viewer/) - OpenGL and OpenCL Graphics Card Information Utility, GPU Caps Viewer 1.8.2 - Windows XP / Vista 32-bit (2009.12.28)

Yea, it tells me I have a CPU and a Juniper OpenCL device, but none of the samples seem to work.
Like I said, support is lacking.

Lightman
25-Jan-2010, 20:49
AMD had a big mouth about OpenCL all this time. nVidia has been silent... so I didn't exactly expect such poor support going from an 8800GTS to a HD5770.
The only way to get OpenCL support is through some unofficial hotfix driver, which only supports a bare minimum of OpenCL features (nVidia supports quite a bit more)... and for some reason applications such as SiSoft Sandra still don't detect the OpenCL support.

[OFF TOPIC]
Well, it works for me quite fine :wink:

Almost 2000MPx/s on slightly OCed HD5870
To make it work you need newest SiSoft Sandra 2010 16.26 and AMD StreamSDK 2.0 final release + Cat.9.12 beta.

Older Sandra releases were broken and didn't detect OpenCL for me as well.

PS. Check this section for a lot of cool OpenCL developments
http://forum.beyond3d.com/forumdisplay.php?f=22
I'm curious how your card will fare in SmallPTGPU app.
[/OFF TOPIC]

rpg.314
25-Jan-2010, 21:04
Yea, it tells me I have a CPU and a Juniper OpenCL device, but none of the samples seem to work.
Like I said, support is lacking.

Did you specify the device type in commandline arguments?

If not, then this has bugged me too. Suffix --device cpu to get the cpu version running.

Scali
25-Jan-2010, 21:54
Did you specify the device type in commandline arguments?

If not, then this has bugged me too. Suffix --device cpu to get the cpu version running.

Doesn't work... Neither CPU nor GPU works.

OpenGL guy
25-Jan-2010, 21:55
Doesn't work... Neither CPU nor GPU works.
Check your path and make sure it's pulling in OpenCL.dll from the Stream SDK before anywhere else. My guess is that it's using a different OpenCL.dll that's not compatible.

Scali
25-Jan-2010, 22:04
Check your path and make sure it's pulling in OpenCL.dll from the Stream SDK before anywhere else. My guess is that it's using a different OpenCL.dll that's not compatible.

No, I even specifically copied OpenCL.dll into my System32 and SysWow64 directories to make sure it picks the right ones... It just doesn't work.

mhouston
26-Jan-2010, 04:49
Did you have Nvidia's OpenCL installed prior? The ICD registration may have gotten borked.

cho
26-Jan-2010, 04:56
Did you have Nvidia's OpenCL installed prior? The ICD registration may have gotten borked.

In NVIDIA's 196.21, the opencl.dll is(are) come from khronos group, will AMD follow this to provide same icd in the driver ?

mhouston
26-Jan-2010, 05:46
Um, we have been using the Khronos approved ICD since the last release. We haven't verified Nvidia latest drivers are per the current Khronos version. The previous ICD from Nvidia was a few revisions out of date. Should be easy enough to check, install the AMD CPU implementation and it should be detected correctly.

Broken Hope
26-Jan-2010, 07:56
Any idea when we're going to get OpenCL support without having to go through the hassle of installing the SDK and such? I believe with Nvidia you can just install their display drivers and get OpenCL support.

Scali
26-Jan-2010, 08:03
Any idea when we're going to get OpenCL support without having to go through the hassle of installing the SDK and such? I believe with Nvidia you can just install their display drivers and get OpenCL support.

That is correct. With nVidia, the OpenCL.dll is supplied with the drivers, with AMD it's part of the SDK.
Another thing I found in my travels through AMD's SDK... you actually NEED to have the Radeon driver files on your system, as they are linked directly in OpenCL.dll. Even if you only want to use the CPU implementation.
I had a problem running CPU-based OpenCL on a system with no ATi videocard. I had to manually copy a few DLL files from the Catalyst package to satisfy the dependencies.

Funny enough, mhouston still PMs me asking what the problems are. That's why I think AMD devrel stinks. They pretend like they don't even know about issues like this. I've seen threads on their forum about it. You know what's broken. Don't PM me pretending that everything is fine and dandy. I'm not an idiot.

Florin
26-Jan-2010, 09:13
You get a PM from an AMD employee trying to help you out and you think devrel stinks?

And I did not have to install a Radeon driver on my system - which is using an Nvidia card - and can still use OpenCL on my CPU after installing the Stream SDK.

Arnold Beckenbauer
26-Jan-2010, 10:00
Check your path and make sure it's pulling in OpenCL.dll from the Stream SDK before anywhere else. My guess is that it's using a different OpenCL.dll that's not compatible.

(It's extremely off topic: With Win 7 x32 RC 7100 I had OpenCL support in SiSoft Sandra 2010c for my CPU and GPU. Some weeks ago the RC was replaced by Win 7 x64 7600 (retail) and I got now DirectCompute support, but Sandra 2010c lacks now OpenCL benchmarks, other OpenCL based software work fine.)

mhouston
26-Jan-2010, 10:06
Any idea when we're going to get OpenCL support without having to go through the hassle of installing the SDK and such? I believe with Nvidia you can just install their display drivers and get OpenCL support.

Cleaning up the distribution model is being worked on. We are the only x86 implementation available so we don't want to hard tie the distribution to catalyst and thus needing an AMD graphics card to run on the CPU, but we also don't want to split things into 2 platforms.

rpg.314
26-Jan-2010, 10:40
Another thing I found in my travels through AMD's SDK... you actually NEED to have the Radeon driver files on your system, as they are linked directly in OpenCL.dll. Even if you only want to use the CPU implementation.

No you don't need *any* radeon drivers to run ocl on cpu's.

I'm not an idiot.
:roll:

FOOLVER
26-Jan-2010, 10:49
5770 goes well on xp 64bit with opencl [cat 9.12 and ATI stream ] (but opencl.dll must be in the same folder as the program I want to run)

5770 goes very well on 7 64bit with opencl [ with cat 9.12 and ATI stream ] (no need to copy opencl.dll here!)

Dade
26-Jan-2010, 11:44
For gaming the HD5770 is doing its job, but I am disappointed by the lack of OpenCL support. The 8800GTS did that lots better.

I have a HD5870, a HD5770, a HD4870 and a NVIDIA 240GT. I'm using OpenCL on all of them in a quite regular basis. Mainly under Linux but often under Windows (7 64bit and XP 32bit) too.

In my experience, ATI OpenCL support is better than NVIDIA one. Anyway, they are both in an early stage of the development and have an understandable level of problems for a such young technology.

For developers, NVIDIA offers a fantastic GPU profiler (it is worth buying one of their cards just to use that tool).

For developers, ATI has very useful OpenCL CPU device that is really handy when you want to develop OpenCL code without a GPU (i.e. on a laptop).

My 2 cents :wink:

pcchen
26-Jan-2010, 11:58
I agree. Unfortunately even with 196.21 driver, NVIDIA's ICD still can't work with ATI's ICD. Of course, simply copying the opencl.dll to the executable's directory works well for now.

I bought a 5850 to try running both GPU on my computer, but unfortunately my motherboard died and apparently took the CPU with it. Now I still only have my stupid Mac mini to work with. I'm going to buy a new CPU instead of waiting the CPU to be fixed.

pcchen
26-Jan-2010, 15:22
I bought a new Core i7 920 so I don't have to wait for the broken one to be fixed. Now I have two GPU working, with ATI 5850 as the main card. However, I found that if the GTX 285 does not have a monitor attached and desktop extended, neither CUDA or OpenCL works. This is pretty annoying because my second monitor is for my Mac mini, so I can't see anything on the "extended" desktop.

Is this problem Windows 7 related (such as, Windows 7 likes to disable a display card when it's not attached and extended) or is it driver related?

OpenGL guy
26-Jan-2010, 15:32
I bought a new Core i7 920 so I don't have to wait for the broken one to be fixed. Now I have two GPU working, with ATI 5850 as the main card. However, I found that if the GTX 285 does not have a monitor attached and desktop extended, neither CUDA or OpenCL works. This is pretty annoying because my second monitor is for my Mac mini, so I can't see anything on the "extended" desktop.

Is this problem Windows 7 related (such as, Windows 7 likes to disable a display card when it's not attached and extended) or is it driver related?
On Windows 7 it should be possible to activate the card even with no monitor present. On Vista, you had to use a "dongle".

Rys
26-Jan-2010, 16:19
Was there a technical reason inside the driver stack that forced that to be the status quo on Vista? I always thought it was quite odd and just the vendor driver's problem, but it seems not now it works on 7.

Rys
26-Jan-2010, 16:22
And as someone that has done GPU development almost exclusively on NV hardware over the last 6 years because of the driver and tooling quality, my recent switch to ATI for my OpenCL work hasn't seen me shitting the bed in disgust. ATI are making very real progress in these areas to the point where I'm mostly vendor agnostic now.

If you'd have heard me even a few months ago, I wouldn't be singing the same tune :lol:

willardjuice
26-Jan-2010, 18:00
However, I found that if the GTX 285 does not have a monitor attached and desktop extended, neither CUDA or OpenCL works. This is pretty annoying because my second monitor is for my Mac mini, so I can't see anything on the "extended" desktop.

Right click->Screen Resolution->Click the "detect" button located on the right side->Click on the monitor that says "Another Display Not Detected" (that corresponds to your 285)->From the drop down menu next to "multiple displays" choose "Try to connect anyway on:VGA"->Then hit apply

This will create a "fake" monitor in Windows 7.

pcchen
26-Jan-2010, 18:57
I can get the card connected to the second input of my second monitor (it can detect the monitor even if the input is not the currently selected one), but it still needs to have desktop extended to the monitor to work.

Of course, it's just a nuisance as long as some windows are not accidentally moved to another monitor (or worse, a fake monitor :) ). It's just odd why it has to be this way.

Broken Hope
26-Jan-2010, 19:32
Cleaning up the distribution model is being worked on. We are the only x86 implementation available so we don't want to hard tie the distribution to catalyst and thus needing an AMD graphics card to run on the CPU, but we also don't want to split things into 2 platforms.

So basically your end user is going to be stuck without OpenCL support till who knows when when Nvidia end users have had support for months? How does that seem right or fair? And no most end users aren't going to make an account on an AMD dev site and download an SDK just go get OpenCL support.

It's all well and good saying you have the only x86 implementation and you don't want to tie the distribution to catalyst but what about people who have video cards that advertise they support OpenCL when the majority aren't getting that support due to the drivers not providing it out of the box?

mhouston
26-Jan-2010, 19:39
I agree the current distribution model is less not ideal. All I can say is that it is being worked on.

Dade
26-Jan-2010, 21:44
So basically your end user is going to be stuck without OpenCL support till who knows when when Nvidia end users have had support for months? How does that seem right or fair? And no most end users aren't going to make an account on an AMD dev site and download an SDK just go get OpenCL support.


I agree with you but you don't really need to download the ATI SDK, you have "just" to download the Catalyst 9.12 driver "hotfix" version. May be I'm wrong because I have the SDK installed too but I had the feeling the only requirement was the "hotfix" driver version and not the SDK.

Arnold Beckenbauer
26-Jan-2010, 21:59
I agree with you but you don't really need to download the ATI SDK, you have "just" to download the Catalyst 9.12 driver "hotfix" version. May be I'm wrong because I have the SDK installed too but I had the feeling the only requirement was the "hotfix" driver version and not the SDK.

You need the SDK, too, because the Catalyst packages does not include the OpenCL.dll.

pcchen
26-Jan-2010, 22:00
Right now both opencl.dll and atiocl.dll/atiocl64.dll are only available in the SDK, so the hotfix driver alone is not enough.

mhouston
26-Jan-2010, 22:00
Broken Hope is correct that you need to install the SDK to get CL, it's not yet in the driver.

EduardoS
27-Jan-2010, 01:43
A redistributable package would be nice...

FrameBuffer
27-Jan-2010, 02:19
A redistributable package would be nice...

Go HERE: http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx
Sign In (free to register)
Then at bottom of page -> (Under OS)

Linux® (openSUSE™ 11.0, Ubuntu® 9.04)
ati-stream-sdk-v2.0-lnx32.tgz (25.8MB) 12/21/2009 32-bit ATI Stream SDK built for 32-bit Linux®
ati-stream-sdk-v2.0-lnx64.tgz (45.2MB) 12/21/2009 64-bit ATI Stream SDK built for 64-bit Linux®
Windows Vista® SP1 / Windows® 7
ati-stream-sdk-v2.0-vista-win7-32.exe (40.5MB) 12/21/2009 32-bit ATI Stream SDK built for 32-bit Microsoft® Windows Vista® and Microsoft® Windows® 7
ati-stream-sdk-v2.0-vista-win7-64.exe (77.4MB) 12/21/2009 64-bit ATI Stream SDK built for 64-bit Microsoft® Windows Vista® and Microsoft® Windows® 7
Windows® XP SP3 (32-bit) / SP2 (64-bit)
ati-stream-sdk-v2.0-xp32.exe (40.4MB) 12/21/2009 32-bit ATI Stream SDK built for 32-bit Microsoft® Windows® XP
ati-stream-sdk-v2.0-xp64.exe (77.2MB)

Install SDK

Install 9.12 Hot fix from:
§ Catalyst 9.12 Hotfix for Windows 7 / Windows Vista
§ Catalyst 9.12 Hotfix for Windows XP
§ Catalyst 9.12 Hotfix for Linux (http://support.amd.com/us/kbarticles/Pages/ATICatalyst912Hotfix.aspx)

MrGaribaldi
27-Jan-2010, 12:39
Go HERE: http://developer.amd.com/gpu/ATIStreamSDK/Pages/default.aspx
Sign In (free to register)
Then at bottom of page -> (Under OS)


Install SDK

Install 9.12 Hot fix from:
§ Catalyst 9.12 Hotfix for Windows 7 / Windows Vista
§ Catalyst 9.12 Hotfix for Windows XP
§ Catalyst 9.12 Hotfix for Linux (http://support.amd.com/us/kbarticles/Pages/ATICatalyst912Hotfix.aspx)


I think you missed the point, we are wanting to get just the relevant runtime files and not having to download 40-80 MB worth of sdk to get it. So if AMD, or perhaps someone here, would create a redistributable that people could download to get OpenCL running, it would be nice...

Dade
28-Jan-2010, 12:03
ATI/AMD has released today a new Catalyst 10.1 version, any information if there is also a new "hotfix" version with OpenCL support ?

I have read in the news they are supposed to introduce many new features in 10.2 (i.e. february) and 10.3 (march) releases: any information ? May be OpenCL support will finally land in the main driver package ?

pcchen
28-Jan-2010, 12:29
ATI/AMD has released today a new Catalyst 10.1 version, any information if there is also a new "hotfix" version with OpenCL support ?

I have read in the news they are supposed to introduce many new features in 10.2 (i.e. february) and 10.3 (march) releases: any information ? May be OpenCL support will finally land in the main driver package ?

I have installed the 10.1 version and it supports the OpenCL SDK directly without the need for a hotfix version (the Stream SDK is still required for running OpenCL programs).

Lightman
29-Jan-2010, 10:48
I have installed the 10.1 version and it supports the OpenCL SDK directly without the need for a hotfix version (the Stream SDK is still required for running OpenCL programs).
Any improvements in OpenCL?

pcchen
04-Feb-2010, 18:53
Any improvements in OpenCL?

I haven't noticed any though. The OpenCL compilers are in the DLL provided in the Stream SDK, so it's not related to the driver. Of course, CAL/IL support is provided by the driver, so if there's any performance improvements in the driver, it should be available to OpenCL too.

A1xLLcqAgt0qc2RyMz0y
06-Feb-2010, 14:28
Quoted text below comes from TechEye article:
http://www.techeye.net/software/amd-defends-itself-from-nvidia-opencl-attack

Question to AMD:

Why has the firm still not released anything to end users after seven months and counting? What is with AMD’s seeming reluctance, our source continued, to support OpenCL features beyond the bare minimum spec? And why was OpenCL still not a part of AMD’s standard driver distribution?

AMD's answers:

So what’s with the reluctance to go beyond the bare necessities? Hook again disputed the implication in the question, noting “we do support some extensions already on our CPUs and GPUs and one example I would give is Atomics.”


“We also offer preview versions of other extensions, which are going to move into production status over time,” he said - but emphasised AMD was “prioritising this based on what customers and ISVs are requesting.”

But Hook also argued that there really was “No real point of having OpenCl in your standard driver until there’s a large volume of applications that are widely available.”

Lightman
07-Feb-2010, 13:34
I haven't noticed any though. The OpenCL compilers are in the DLL provided in the Stream SDK, so it's not related to the driver. Of course, CAL/IL support is provided by the driver, so if there's any performance improvements in the driver, it should be available to OpenCL too.

I have noticed that GPU Caps Viewer no longer complains about lack of GL interop with new Catalysts :smile:

Mintmaster
07-Feb-2010, 20:14
Quoted text below comes from TechEye article:
http://www.techeye.net/software/amd-defends-itself-from-nvidia-opencl-attackThe comment from "Blank" at the end of that article is pretty spot on. NVidia's OpenCL is nothing to write home about. I've wasted a lot of time dealing with crashes from their compiler, and even when it works it's a lot slower than CUDA, despite me not using any specific features of the latter.