cancel
Showing results for 
Search instead for 
Did you mean: 

OpenCL

timchist
Elite

OpenCL development documentation on AMD GPUs

Is there a publicly available list of all AMD GPUs supporting OpenCL which includes:

  • product name ('AMD Radeon RX Vega 64')
  • internal name ('gfx900', can be obtained as CL_DEVICE_NAME)
  • architecture ('GCN gen 5')
  • architecture codename (such as 'Navi', 'Vega', 'Southern Inslands' etc')
  • key device parameters (configuration, GFLOPS, bandwidths etc.)

At the moment we are using this wiki page:

List of AMD graphics processing units - Wikipedia 

but it often does not include new GPUs and information there may be not entirely accurate.

Is there a more official source of such information?

For example, NVIDIA maintains this page:

CUDA GPUs | NVIDIA Developer 

Also NVIDIA publishes detailed documentation on each compute capability as a part of CUDA Toolkit, including up-to-date optimization guides.

The most recent programming and optimization guide from AMD I saw have been released as a part of AMD APP SDK in August 2015 -- more than 4 years ago, still based on HD 7970 and even partially covers VLIW GPUs. Are there more recent versions?

Any new examples demonstrating efficient techniques in programming AMD GPUs? Again, the most recent ones I have are those included in AMD SDK.

0 Likes
2 Replies
dipak
Big Boss

The above wiki page is a useful reference to find information about the AMD GPUs and, as the page claims, it mostly based on the official specifications. 

The official product specifications can be found here: https://www.amd.com/en/products/specifications. It also supports search filters to list the products.

Regarding the OpenCL support, in general, current support looks like this:

OpenCL 2.0: GPUs based on 2nd generation GCN and above

OpenCL 1.x: GPUs based on 1st generation GCN and above

Please note that the actual support depends on the OS and driver. 

Regarding the programming and optimization guide, yes those are the latest documents available at this moment. They also can be found here: 

OpenCL Programming Guide — ROCm Documentation 1.0.0 documentation 

OPENCL Optimization — ROCm Documentation 1.0.0 documentation 

I agree with you that these documents are a little bit old and need to be updated to include the newer products. As I know, the concerned team is already working on this. The OPENCL Optimization page says: "Re-Write in Progress to move this to Vega and FIJI/Polaris optimization guide". 

Thanks.

Thanks dipak.

The official product specifications can be found here: https://www.amd.com/en/products/specifications. It also supports search filters to list the products.

It seems that this page does not include AMD products for Apple computers such as Vega II, Vega 64X, AMD Radeon Pro 5300M / 5500M etc. Any chance to get detailed specs on those?

Also what about underlying architecture? For example, how can I understand from that table that RX 5700 is based on gfx1010? Also, how can I figure out that gfx1010 is RDNA and not GCN? Wavefront size? Shared memory size? Number of registers per CU? Number of CUs? These all are critical parameters for optimizing code. How can I get this information?

"Re-Write in Progress to move this to Vega and FIJI/Polaris optimization guide". 

As of today Vega, Fiji, Polaris are all old GPUs. What about RDNA-based cards?

NVIDIA development documentation is often published well in advance (months or even years) of the moment when a new card can actually be purchased. For example developers have known about the fact that NVIDIA Volta and newer GPUs would be able to diverge within warp for about a year by the time it has actually happened! On the contrary AMD has only released a whitepaper on RDNA and announced changes in wavefront size from 64 to 32 in August 2019 -- more than a month after RX 5700 became available.

Anyway, I believe you have heard my message and hope you can pass my comments to relevant teams. I would love AMD to become more developer-friendly. In order to win the battle with other GPU manufacturers you need not only to produce high-performing GPUs (which you have already thanks to 7nm and RDNA) but also the support of developers' community.