cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

ryta1203
Journeyman III

BRT_RUNTIME = CPU vs CAL?

What are the major differences here? (other than CPU vs GPU)??

I am asking because I have Brook+ code that runs fine if BRT_RUNTIME = CPU but on the GPU only the 1st kernel is really getting called. It's very odd.

This occurs on both 2900XT and HD4850 with Catalyst 8.7 on 2900XT and Catalyst 8.8 on HD4850 running WinXP 32-bit VS2005. Just thought I would answer these questions first.
0 Likes
10 Replies

Hi ryta1203,

Can you try this with Catalyst 8.6? 1.1-beta seems to have known issues with 8.7 and beyond.

Michael.
0 Likes

Michael,

I thought that people were only having problems with Linux and these drivers, but I will give that a go tomorrow and will post how it went.

Are there any other things that would make it so that running in emulation mode would be ok but not GPU mode?
0 Likes

Originally posted by: michael.chu@amd.com

Hi ryta1203,



Can you try this with Catalyst 8.6? 1.1-beta seems to have known issues with 8.7 and beyond.



Michael.


No luck. I did a clean install of 8.6 and while I get different results with 8.6 than I did with 8.7 on the 2900XT, I still do not get the correct results which I get if BRT_RUNTIME=CPU.

What are the real differences between CPU and CAL for BRT_RUNTIME?

ps. My kernel(s) don't use scatter or double precision.
0 Likes

So does anyone know the real difference between CPU and CAL???

I have code that runs fine in CPU but not in CAL.

Is it possible to get a list of the differences?

I understand the hardware differences so what other differences are there?
0 Likes

Originally posted by: michael.chu@amd.com

Hi ryta1203,



Can you try this with Catalyst 8.6? 1.1-beta seems to have known issues with 8.7 and beyond.



Michael.


Michael,

Can we expect any documentation included with 1.3 Beta that describes the differences between CAL and CPU for BRT_RUNTIME??
0 Likes

Hi ryta1203,

The only difference between CPU vs. CAL is that with CPU, the Brook+ runtime will execute a version of the code on the CPU and not touch the GPU at all. The CAL setting will take the code path of sending IL down to the Brook+ runtime which sends it down to the CAL compilation API.

The Brook+ compiler (brcc) outputs both CPU code and Brook+ runtime (CAL) code (with IL for the kernels) each time it is run on a .br file. The decision on which path is run is completely determined at runtime via the environment variable.

Both paths of code are available in the C++ files that come out of brcc.

Michael.
0 Likes

Originally posted by: michael.chu@amd.com

Hi ryta1203,



The only difference between CPU vs. CAL is that with CPU, the Brook+ runtime will execute a version of the code on the CPU and not touch the GPU at all. The CAL setting will take the code path of sending IL down to the Brook+ runtime which sends it down to the CAL compilation API.



The Brook+ compiler (brcc) outputs both CPU code and Brook+ runtime (CAL) code (with IL for the kernels) each time it is run on a .br file. The decision on which path is run is completely determined at runtime via the environment variable.



Both paths of code are available in the C++ files that come out of brcc.



Michael.


So code that runs in CPU mode should run in CAL mode too?

I have not noticed this to be the case.

Also, are we going to see, in the future, where the CPU mode mimics the CAL mode? That is, if you write code in emulation mode it will run in CAL mode providing the hardware supports the features used?

Maybe I am missing the point of having emulation mode.
0 Likes

AMD,

Any answer to these questions??

1. What is the difference(s) between CAL and CPU for BRT_RUNTIME?
2. Are the differences going to be documented?

Also, other than GPU Shader Analyzer, is there any chance we are going to see a profiler specifically for GPGPU (Firestream)?
0 Likes
Ceq
Journeyman III

Two months ago I think I also found a bug in CPU backend gather with 2D data, maybe this can be helpful:

http://forums.amd.com/devforum...id=97566&enterthread=y
0 Likes

Ceq,

I appreciate the link; however, this isn't my problem as I am only using 1D arrays.
0 Likes