2015-12-14 54 views
3

我的電腦配備了NVIDIA宣稱擁有640個CUDA內核的GeForce GTX 960M。但是,當我運行clGetDeviceInfo來查找計算機中的計算單元數時,它會打印出5個(請參見下圖)。聽起來CUDA內核與OpenCL認爲計算單元有些不同?或者,也許一組CUDA內核構成OpenCL計算單元?你能解釋一下嗎?NVIDIA GPU的CUDA內核與OpenCL計算單元之間的關係如何?

enter image description here

+3

複製有這麼OpenCL的CUDA <->映射林果流傳在Internet上的表。 CUDA的流式多處理器是什麼OpenCL稱之爲計算單元。 CUDA「核心」實質上是ALU/FPU。 GTX 960M有5個SM,每個SM有128個內核,總共640個。 –

+0

@昂吉生菜感謝您的回答。所以,如果我正確地理解了這一點,每個工作組都將在一個計算單元中執行;因此,給定最大工作組大小1024,我可以在此GPU中執行的最佳並行性是在相同的情況下執行1024 * 5 = 5120個工作項目。這是正確的嗎? – mfaieghi

回答

6

什麼是NVIDIA GPU的CUDA核心和OpenCL計算單元之間的關係?

你GTX 960M是麥克斯韋裝置5個多處理器中,每個具有128個CUDA核心,總共640 CUDA cores

NVIDIA Streaming多處理器is equivalent to an OpenCL Compute Unit。先前鏈接的答案也會給你一些有用的信息,可以幫助你解決評論中的核心問題。

0

CUDA架構與OpenCL架構非常接近。

CUDA設備是圍繞可擴展的多線程流處理器(SM)陣列構建的。多處理器對應於OpenCL計算單元。

多處理器爲每個OpenCL工作項和每個OpenCL工作組的線程塊執行一個CUDA線程。內核通過一個線程塊網格在OpenCLNDRange上執行。如圖2-1所示,執行內核的每個線程塊因此都通過其工作組標識唯一標識,並且每個線程通過其全局標識或本地標識和工作組標識的組合來標識。

從的OpenCL編程指南CUDA架構http://www.nvidia.com/content/cudazone/download/OpenCL/NVIDIA_OpenCL_ProgrammingGuide.pdf