📜 ⬆️ ⬇️

Nvidia openCL


As you know, CUDA technology is available only for nVidia video cards. Because of this fact, frequently there are questions: how to be owners of ATI Radeon video cards, and whether it is worth using solutions available on hardware of only one manufacturer.

In this regard, I decided to clarify a bit what CUDA is, and what role does it play in the implementation of GPGPU unified standards on nVidia video cards.

GPGPU software implementations


Currently, the market does not yet have universal technologies for using GPUs in non-graphical computations, although developments are under way.
')
Among the technologies being developed, Microsoft DirectX Compute and OpenCL , which was proposed by Apple, are particularly noteworthy. From the title, you can guess that today we are talking about OpenCL and its implementation from nVidia.

OpenCL is an open standard for GPGPU, which is being developed by the Khronos consortium ( khronos.org ), and by design, will allow the use of GPU power on various software and hardware platforms.

Perhaps some will have a question: why nVidia is developing CUDA, and ATI is Stream, it would not have been easier to agree on the adoption of a common standard right away. But in fact, everything is not as simple as it seems, and the point is not only in the policy of producers, although in it too. It so happens that the development of the GPU goes a little different way, in contrast to the CPU, where the common architecture has been unified for a long time. Graphic processors from different manufacturers initially had a completely different architecture. For example, there are no common commands for GPUs from different manufacturers, there is no universal assembler. And the answer regarding CUDA and Stream is quite simple - these are the hardware-dependent layers on top of which the unified architectures of OpenCL and DirectX Compute are built. If someone read the previous entries on nVidia CUDA, you probably noticed the mention of the CUDA driver API. CUDA driver API is the same hardware-dependent layer for working with the GPU from nVidia. In general, the software stack for working with nVidia GPU is as follows (can be found in the official CUDA documentation):



As you can see, OpenCL and DX11 Compute work on top of CUDA technology.

When to wait for OpenCL from nVidia



Not long ago, the Khronos consortium released the first version of the OpenCL specification, which is available on the organization’s website as a pdf document.

NVIDIA also introduced roadcars to support OpenCL in their products:



True, the beta version will most likely be available only to nVidia partners. It remains to hope that in the middle of the year a full implementation of OpenCL will appear, which anyone can use.

Conclusion


I hope that the fog of war regarding the support for OpenCL by the nVidia campaign, and what role CUDA plays in this, has been dispelled a little.

Source: https://habr.com/ru/post/55566/


All Articles