Who is the master of sinking opencl and Cuda architecture in-depth analysis

Source: Internet
Author: User

Recently, khronos announced the first test version of opencl (Open Computing language). Once released, it was a big wave in the field of general computing! Opencl is an open and free standard for concurrent programming for general purposes of heterogeneous systems, initiated by Apple and jointly developed by many famous manufacturers in the industry. It is also a unified programming environment. It facilitates software developers to write efficient and lightweight code for high-performance computing servers, desktop computing systems, and handheld devices. It is also widely used in multi-core processors (CPUs), graphics processors (GPUs) cell architecture, digital signal processor (DSP), and other parallel processors have broad development prospects in various fields such as games, entertainment, scientific research, and medical care.

So what is the relationship between opencl and NVIDIA's Cuda architecture? Is it a competitive relationship that the outside world thinks? Among the many general computing standards, such as NVIDIA cuda, khronos opencl, amd stream, Cal, brook +, and Microsoft's next-generation computer shader, what are their similarities and differences, after reading this article, I believe you will have a rough idea ......
Opencl is coming!
Khronos is a development organization. The famous OpenGL is from khronos. khronos is composed of many manufacturers. The opencl Working Group is also a coordination organization of opencl, to develop the specifications and architecture of opencl. The most important manufacturers in the industry that are related to graphics or computing are members of khronos.
Opencl is actually a brand new API for parallel programming for heterogeneous systems. opencl can use GPU for parallel computing. We know that there are many APIs in graphics, such as OpenGL for graphics, and opencl for parallel computing. Opencl developers can use GPU and CPU computing capabilities to apply heterogeneous GPU and CPU Systems in many parallel computing fields.

Opencl is a very important and good standard for the industry, so that the industry has a common standard that can leverage the powerful computing capabilities of GPU, and then apply it to a variety of parallel computing aspects outside of graphics. Neil trevett, vice president of NVIDIA, is the chairman of the opencl Working Group and guides many opencl developers. Many employees of NVIDIA are involved in this work.
Opencl was first proposed by Apple. opencl initiated NVIDIA to work closely with Apple. During opencl development, the technical platform is nvidia gpu. In fact, opencl is developed based on the nvidia gpu platform. In addition, opencl conducted its first demonstration about two months ago, which is also running on nvidia GPU.

Apple regards GPU computing as a trend in the future. They place great importance on opencl and choose the platform most suitable for opencl running in the next-generation products. So the next generation of Apple's laptops all use NVIDIA's platform, whether it's a MacBook Pro or a m1_k. In fact, this proves nvidia gpu's support for opencl from another aspect.
Opencl and Cuda are not hostile
Many people may have some doubts about what Cuda is, and do not know exactly what it is. In fact, Cuda mainly includes two aspects: one is the ISA instruction set architecture, the other is the hardware computing engine, and the other is the hardware and instruction set. That is to say, we can regard Cuda as an architecture similar to x86 or cell, but it is based on GPU rather than traditional CPU.
This is actually easy to understand. I believe it is easier to understand than the traditional CPU architecture. Traditional x86 contains a set of instruction sets and executes a variety of X86 CPUs, the same is true for Cuda. Cuda has a set of instruction set ISA and various hardware engines that execute instruction sets. Until now, Cuda has included a C language compiler. Of course, the Cuda architecture also supports other APIs, including opencl or DirectX. At the same time, Cuda also has other languages, it can be said that the Cuda architecture is native and is specially built for computing interfaces, this hardware architecture, including the instruction set, is very suitable for this type of parallel computing. It is a complete architecture designed for heterogeneous computing.

Relationship between opencl and Cuda
A good explanation of the relationship between Cuda and opencl. They are not conflicting, but inclusive. Opencl is an API. At the first level, the Cuda architecture is at a higher level. In this architecture, whether it is an API like opencl or dx11, or computing like C, Fortran, or dx11, are supported. As program developers, they generally only understand these languages or APIs and can develop their own programs in multiple languages. No matter what language they choose, as long as they want to call GPU computing capabilities, cuda can be used for programming in this architecture.
Cuda programming is similar to CPU programming. For example, with x86 instruction sets and x86 CPUs, you only need to program the instruction set. There are a variety of development tools on the X86 architecture. Of course, there are also C language, Fortran language, Python language, Java or the previous PASCAL Language, No matter what language you use for development, finally, it is executed on the X86 architecture. The same is true for Cuda. With the Cuda Instruction Set and the hardware supporting cuda, we can use different approaches for development, such as using APIs such as opencl and DirectX, it can also be developed in C language, FORTRAN or Java and can be run on the Cuda architecture.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.