2014-03-19 168 views
0

你好,我在OpenCL文檔上看到, Compute Unit有很多處理元素。 處理元素是否僅包含ALU? 上的處理單元,是單個ALU有SIMD操作嗎?或4 ALU可以製作SIMD?GPU計算單位?

回答

1

我認爲大多數當前設備將單個ALU映射到處理元素,而ALU是單個SIMD內核。事實上,不支持SIMD的CPU不支持OpenCL。

關於OpenCL的一點是,除非您正在爲特定硬件編寫內核,否則您不需要關心確切的底層架構。未來的設備可以使用盡可能多的調度程序/ ALU /內存控制器/等等,因爲製造商選擇實施SIMD體系結構。

如果您想遵循「一次寫入,隨處運行」的口號,您需要堅持OpenCL API公開的屬性。 (例如CL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE,和CL_DEVICE_PREFERRED_VECTOR_WIDTH_ *)

+1

我想說的重要措施是:'CL_KERNEL_PREFERRED_WORK_GROUP_SIZE'' CL_DEVICE_MAX_WORK_GROUP_SIZE',然後你需要處理一些小的事情:維度,本地內存,最大參數,最大參數大小,最大常量等。 – DarkZeros

0

有些人共享特殊功能單元每幾個的ALU和一些具有每ALU FPU的等量沒有任何特殊的單元有尋址單元,標量單元太。 AMD和NVIDIA和INTEL之間的SIMD組織是不同的。有些有16個寬的組,有32個組。然後這些團體聯合起來,爲其中一個製造商製造64個計算單位,而爲另一個製造商製造192個計算單位。驅動程序優化通常會改變這些ALU所做的事情。您只需編寫單一指令 - 多個數據代碼和驅動程序負責優化,除非您選擇優化執行參數。

您可以使用opencl api方法查詢必要的信息。