Umh, looks like you didn't install Radeon driver 8.12, did you? It's required for the new version to run.
Ok I checked the version I downloaded. It was 6.11.
There seems not to be any better version.
I have a Radeon 9250. Maybe there isn't a better version for that junk card.
In an other PC I have an X1650 Pro.
Will it work with this one?
I'm afraid it won't work, It has to be at least a Radeon 2xxx.
If you have such old card or a nVidia card you can't install driver 8.12
In previous versions you could use a special software backend for testing purposes
setting the environment variable BRT_RUNTIME=CPU.
Using Radeon 1650 you'll be able to install the driver, but won't get hardware acceleration.
Question for AMD:
Is there any way to install SDK 1.3 and use software backend having a nVidia card?
Ok thanks but tell me why won't I get 'hardware acceleration' with an X1650 Pro? I bought the computer with this card 22 month ago, that's not THAT a long time. I'm sorry, but when even my existing X1650 Pro isn't supported, why should I still buy ATI cards? There's a competitor of ATI (I won't tell the name here ) which has CUDA, which is (at the current time) much better than ATI Stream I think. Sorry, ATI
Do you see? Even their forum doesn't work right (you should have seen this message before I re-posted it to get it right)
Originally posted by: Ceq Question for AMD: ------------------------------------------------------------------------------------------------ Is there any way to install SDK 1.3 and use software backend having a nVidia card?
1.3 too supports CPU backend and can be used if you set BRT_RUNTIME=cpu or selected automatically if runtime is failed to initialize CAL backend.
Well, I don't find surprising that x1650 pro is not supported, take into account that
the first 1x00 series card were launched in 2005 and they were DirectX 9 products.
In comparation the minimum card required to run CUDA is from 8x00 series,
first launched in late 2006 and was a DirectX 10 product.
Certainly CUDA is a good product, but Brook+ has improved a lot and last version
is quite good too, I was able to get more than 150x speedup for my application.
Q: Will the AMD FireStream SDK work on previous generation hardware?
A: To run the CAL/Brook+ SDK, you need a platform based on the AMD R600 GPU or later. R600 and newer GPUs are found with ATI Radeon tm HD2400, HD2600, HD2900 and HD3800 graphics board.
Ok, I don't want to prefer nVidia or ATI, I think it's good when there's competition, this increases the general product quality and decreases the price for the end-user.
But somehow Brook+ and CAL don't convince me that much
Somehow this looks like a big hack to me - quickly released to avoid that nVidia spreads.
Somehow CUDA (and also the nVidia website) looks more planned and well-deviced to me.
One advantage of ATI is the much lower price.
You know, I'm new to GPU computing. But here in the ATI Stream forum I read this:
Brook 1.3 does not support multple gather streams
so that is illegal to write:
kernel void multiscatter(double input<>, out double output1, out double output2)
int index = 33;
output1[index] = input * 2.0;
output2[index] = input * 3.0;
Unfortunately, this can be quite common requiring the programmer
to split the code above into multiple kernels and doing
Ok, so I have to do the duplicate work. What am I doing this whole GPU stuff for? To get my app faster. And then, because of lacking software features I must do the duplicate work with ATI Stream.
Not that great
BrookGPU was previous to nVidia's CUDA, Brook+ is a version improved by AMD.
Brook+ does support multiple gather streams, what may not work is multiple scatter streams.
In general you should try to use a stream programming model, and avoid using scatter
because it performs uncached writes that are quite slow. Many applications can be rewritten
so scatter isn't really needed.
The example you wrote will cause massive race conditions, as all processors would try
to write a different value to the same location.
If you want to use scatter anyway you can use a double2 output
stream so it isn't required to use two scatter outputs.
In your Brook+ installation directory you have some documentation and several examples
that can help to understand stream programming model.
Ok thanks for the help. But allow me two questions, please answer them directly:
-are you staff from ATI?
-what is better, ATI Stream or nVidia CUDA?
I'm mean, I know
Happy new year!
No, I'm just a normal user like you. I have been working with Brook+ since version 1.0.
I didn't work on CUDA, I just read the user guide and some samples.
CUDA software has evolved more, however I think which one is better depends on the application.
On the other hand ATI's hardware is really impressive, you can have 1 TFlop supercomputer for a small price.
I'm a college student who have been assigned to parallelize a Shallow Water Simulator using Brook+, there
are two classmates that have been asigned to do the same on CUDA and PS3 Cell. When finished in a few
months maybe I would be able to give you a more accurate answer
Aha. But in the nVidia forum there was a guy that said he didn't like Brook+ any more when he tried out CUDA. Here's the quote what he said:
Yes, this is the Stanford implementation of Brook, a C-language extension for data-parallel calculations. The original Stanford compiler (called BrookGPU) generated code which used OpenGL/DirectX calls and shader languages to control the GPU, rather than a more direct layer, like PTX or CAL. BrookGPU was a great environment, but the implementation was limited by the capabilities of graphics cards at the time. There is nothing like shared memory, scatter/gather operations are very awkward, and you have to use vector-operations to get maximum performance.
If you are stuck with some older cards (not sure if the Radeon 9 is too old) and feel like experimenting, you might want to play with the original BrookGPU to get an appreciation for how revolutionary the GeForce 8 and CUDA were. (or not, you could just take our word for it...) I programmed in BrookGPU for a few weeks, then the 8800 GTX and CUDA came out, and I never looked back.
But I just checked the prices. nVidia GTX260: ~270€, ATI Radeon 4870: ~220€. I don't know exactly which one is faster, but I think they are comparable. Hmm I don't know, I must buy a new card anyway. Now I face the decision ATI or nVidia.
No idea. What do you think?
Happy coding and again a happy new year (here there are only 5 hours left of 2008...)
Radeon 4850 costs only about 150€.
It has great performance as long as your application isn't memory bandwidth limited.
Happy new year
Thanks Gaurav, I know it should be that way, however if you use an old ATI card like
Radeon 9250 or you have a nVidia card you can't install Catalyst driver 8.12
In the new SDK, even if you set the environment variable you'll get the same error
about amdcalcl.dll missing, that was the reason I was asking.
Install 1.3 Brook+ and 1.2.1 CAL.
That way the program just aborts with error 0xc000001d
That's strange. Is this after setting BRT_RUNTIME=cpu?
Yes, I did set it. In order to make sure I tested in a clean virtual machine but that way it
worked right, maybe it is a problem related to previous installations, so don't worry.
I'm using a 4870.
Yesterday I installed Catalyst 9.2 (9-2_xp32_dd_ccc_wdm_enu_75974.exe) and I got an error for missing amdcalcl.dll and it was really not I stalled (I searched the whole hard disk).
Now I installed 8.12 (the seperate package version) and everything works fine. Have I downloaded the wrong 9.2 Version?
It's just a library renaming issue.
Don't worry, they're already aware and it will be fixed in SDK 1.4.
Different name for CAL libraries in Cat 9.2
amdcal*.dll got renamed to atical*.dll