cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

riza_guntur
Journeyman III

Need some information about RV800 and RV700 memory access

http://forums.amd.com/devforum/messageview.cfm?catid=390&threadid=121273&enterthread=y

@MicahVillmow

3) on the 7XX series of cards, __local is emulated in global memory since the 7XX does not have fully read/write local memory like 8XX does

Can it be explained? I need this to add more information to my paper

0 Likes
5 Replies
n0thing
Journeyman III

In 7xx, a thread can read from any location in local memory but can only write to its own private location. Here is an excerpt from R700 ISA document (section 2.6.2) :

"thread in a group can write only to the area of memory it owns; however, a thread can read any chunk of memory that is owned by either itself or other threads"

But OpenCL spec does not define any such restrictions on local memory and hence the local memory should be read/write anywhere for a thread in a work-group.

Hence 7xx series actually uses global memory internally when local memory is requested, however 8xx series support the kind of local memory required by OpenCL. (Note that Nvidia has been supporting the kind of local memory as required by OpenCL since G80 series)

0 Likes

Do you mean local memory is like LDS? But bigger and can read/write directly to some offset of GPU main memory according to workgroup we specified?

0 Likes

LDS is infact a local memory (16Kb on each SIMD on 7xx) but with restrictions on write as i mentioned in previous post hence not very suitable in OpenCL programming environment.

The 8xx series LDS (32Kb on a SIMD) has no such restrictions.

It is just the difference in terminology : Nvidia calls it shared memoey, ATI calls it LDS, in OpenCL it is local memory, in Compute shader it is TLS (thread local storage).

0 Likes

Does this mean the local memory of RV770/RV740 is not accessible at all when using OpenCL? This would be pretty bad..

0 Likes

Originally posted by: jjp Does this mean the local memory of RV770/RV740 is not accessible at all when using OpenCL? This would be pretty bad..

 

The LDS on RV7xx isn't available with OpenCL. With those devices OpenCL local memory is simulated using global memory. And you are right - it is really bad. Unfortunatelly AMD/ATI doesn't plan to correct this any time soon ( or ever ) ( http://forums.amd.com/devforum/messageview.cfm?catid=390&threadid=121787&enterthread=y ).

0 Likes