Okay, I suppose at this point we are all familiar with John Fruehe, and his behaviour on public forums. I suppose you also know about Randy ’40%’ Allen, and Richard Huddy. And there is also Dave Baumann, of course. I’ve also mentioned Dave Hoff before, so perhaps you are familiar with him as well.
But, somewhat related to the goings-on with Dave Hoff, namely with OpenCL in general, there is Mike Houston. You see, when my GeForce 8800GTS died, and I got a Radeon 5770 replacement instead, I was working with early OpenCL. Since nVidia was rather silent about OpenCL in general, while AMD was extremely vocal about it, I expected OpenCL support to be better than nVidia’s (not that I really had complaints about nVidia at that time).
But no, I found out that AMD still had quite a few problems. You could not use the regular WHQL drivers, but only some hotfix ones, which did not always install or uninstall properly, you had to install the entire SDK just to get OpenCL support, since there was no separate OpenCL runtime available (not really something you can sell to end-users). And even if you only wanted to use OpenCL on the CPU, you still had to install some of the Radeon display driver DLLs, since they were hard-linked to the OpenCL runtime. Which is rather annoying when you want to run OpenCL on a system with an AMD CPU and a non-AMD GPU (or at least an AMD GPU that is not OpenCL-capable).
Anyway, I mentioned the OpenCL disappointment casually on Beyond3D:
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.
As you can see, the moderators split up an entire thread for this casual remark (it was not my intention to start a new thread on this topic, since I didn’t see it worth debating. The problems were already known, as I have reported some of the problems to AMD myself, and noticed that others were being discussed on the AMD/Khronos OpenCL forums anyway, so they were known to AMD). I hate it when moderators do that without asking. By splitting up a thread, they give off the impression that the first poster wanted to discuss the topic, which draws a lot of unwanted attention. And obviously they picked the ATi-remark to split it on… not the remark I made about nVidia not having their hardware in order (they did not have any DX11 parts out yet at the time).
Mike Houston does what John Fruehe is famous for: he distorts the truth:
OpenCL runs on the 5770.
Which is true, theoretically. However, I never denied that OpenCL runs on 5770, I just found the level of support rather lacking overall (but I didn’t go into detail as it was a casual remark, not wanting to start a debate on the issue). Ofcourse the usual AMD apologists join in (probably the point of splitting up the thread in the first place: covering AMD’s back).
In the meantime, Mike Houston sends me this unsollicited private message:
“What do you mean support is lacking? The chip is fully supported by the 9.12 hotfix driver and the Stream SDK we ship…
And as for devrel, we are involved with all of the ISVs that have expressed any interest in OpenCL and work pretty actively with them. Could we do better, yes.”
Clearly I did not care for this tone at all. In fact, I do not care for unsollicited PMs anyway, especially not when they are from company employees. What am I to make of this? It basically sounds like: “We are involved with some ISVs, and we have full support, so there is no lack of support. You mean nothing to us, so just shut up”.
So I answered him, saying that he should know what type of things I am talking about, as I have reported some of the issues myself, and seen others being discussed on forums. And I wanted to leave it at that, since I never wanted to discuss the topic in the first place (if I report a bug, it is done with, from my side, right? I don’t have to argue with AMD’s employees over whether it actually is a bug or not, right? Why does AMD always treat their users as if they are idiots? Then again, they may have somewhat of a point…).
Anyway, I commented on Mike Houston’s PM in public, as I was not impressed with it at all:
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.
Which apparently was enough reason for the Beyond3D staff to ban me. Yes, if you have criticism on AMD products, you are a troublemaker (does that sound familiar? People arguing against JFAMD’s Bulldozer claims would also be met by strong flaming from the AMD fanboy crowd, and would find themselves banned at times, since even the forum staff bought into JFAMD’s fairytale. Beyond3D is worse though, as AMD’s Dave Baumann used to be the site’s owner. More viral marketing?).
Anyway, since Mike Houston annoyed me with PM’s, I decided to return the favour. I kept asking him when there would be an OpenCL runtime in a regular driver release for end-users. After all, as a developer, you need to know when AMD users get OpenCL support, so you can actually release your application to them. So every month a new driver came out, with no OpenCL, I would ask the question again.
At first, there was no response at all. Then I sent this:
So what is this, Mike?
I’m a paying customer and registered developer with
AMD…I’ve complained about OpenCL support before… At first you flatout deny it, which I consider a huge insult. Then when you realize I can’t be fooled by your spindoctoring nonsense, you ask what you can improve…
And two driver-updates later, my requests are still ignored…
Still no OpenCL runtimes for end-users.
I thought AMD was so big on OpenCL? That nVidia was the evil proprietary Cuda monster, and you were going to save us with open standards?
Doesn’t look like it from where I’m standing.
And you don’t even answer any mails either.
What kind of a joke is this company?
That finally got *some* reply out of him:
You’ve been heard. Not everything may be done as quickly as we would all desire, but things are being worked on.
Still not very friendly, but it’s a start… So I asked two specific questions regarding the binary compatibility of OpenCL applications (for when I want to release them to end-users). This time I finally got a more thorough answer, and in a friendlier tone. Perhaps it finally dawned on him that I was actually a paying customer and a registered developer, and I was basically beta-testing their OpenCL for them, and had reported some issues, which they had subsequently fixed.
Anyway, this was his reply (in blue):
I’d like two specific answers:
1) What is the eta for Catalyst WHQL end-user OpenCL support? March? April? December… 2012?
[MCH] There is a full roadmap available to ISVs under NDA that cover the role out of this and other features. We are trying to pull in the release to be sooner rather than later. At the moment inclusion in Catalyst is aligned with when several
vendors have plans to release and sell OpenCL apps. I would like to see things in Catalyst before that. We need to work on the size of the OpenCL runtime to avoid ridiculously bloating Catalyst, and also deal with ICD installation issues we are having with other vendors who are not running the Khronos ratified ICD, and then how to not stomp on each other. This is all being worked on alongside other features.
2) How ‘final’ is the current SDK? It’s not in beta anymore, but in the newly released 2.01 SDK’s I notice that they are built
for/against 10.2 or higher drivers.
[MCH] Those should still work with 10.1 as well. If not, we screwed something up. But, the base drivers (and more
specifically CAL), get updates that improve stability, performance, or will enable certain features. 10.2 contained stability and performance improvements at the driver level, as will future releases.
Are there any more ‘surprises’ in store? When the beta 2.0
Stream SDK went final 2.0, suddenly OpenCL had some significant changes, requiring a rebuild of applications in
order to work with the newer runtime.
[MCH] Besides the ICD and the stabilizing of calling convention under Windows (it took a little while to get that fixed in Khronos and not all vendors are shipping a Khronos approved ICD),
what else changed that caused recompiles? Getting calling convention agreement went pretty fast (which you reported) and we tried to be responsive quickly.
(Things like that we can push out much faster to developers directly, which we did). Ratification of the ICD and the platform stuff was a little late from Khronos and not all vendors have moved to the ratified ICD.
Not something I expect from beta -> final stage… that’s
something that should only happen in alpha stage.
In other words… if I were to build and release
something with today’s SDK, will it still work when end-user runtimes are released, or would I need to rebuild again?
[MCH] It should continue to work since the ICD is now supposed to be the stabilization point, so there should be ABI stability there. The end-user runtime will be extracted from the developer releases, but the developer releases will likely remain ahead.
However, it’s possible, of course, that bugs may happen. We try to prevent this by running previously compiled OpenCL code against new releases to catch these issues. For ISVs that are gearing up for releasing apps, we try to get stability and performance test cases from them, if not full apps, for inclusion
into QA so that things remain as stable as possible and to avoid performance regressions where possible. If we don’t have the app, or at least test cases, it’s difficult to make sure an app doesn’t break.
Gee, finally a decent answer out of an AMD-employee. Why couldn’t he do that the first time, instead of acting like an arse and treating me like an idiot (he even acknowledged that I reported some bugs now)? Did he only now find out that I wasn’t bluffing? That I was an actual 5770 customer, who actually used OpenCL, and actually had reported some bugs? Or did someone higher-up in the company set him straight? And why is a roadmap for OpenCL drivers under NDA? Why aren’t you open about the way you support open standards?
Anyway, I decided to leave it at that. The damage had already been done anyway, and I decided to just go back to nVidia, once the GeForce GTX460 was launched.
For completeness however, I’d like to report that AMD finally released an OpenCL runtime for end-users with Catalyst 10.11, in November of 2010. More than half a year after this whole episode. And more than a year after nVidia’s public OpenCL support for end-users. A bit strange, considering AMD’s marketing offensive on OpenCL at the time, don’t you think (Which must be why they couldn’t disclose their driver roadmap, and the ISVs involved in AMD’s OpenCL program were also under NDA, and not allowed to comment)? Speaking of which… has anyone seen any games with physics acceleration for AMD GPUs yet?