2016-09-06 25 views
1

According to Wikipedia, the Iris Graphics 6100 has 48 execution units (EU) with each having a pair of 128 bit FPUs.因此,每個EU應該支持8個浮點類型的矢量。當設備輪詢GPU的首選向量寬度時,除double之外,每種類型都會顯示爲1。結果是0.這是預期的行爲,因爲雙打不被支持。 CPU正確返回了所有信息。所有48顆GPU EU都被認爲是存在的。OSX上的矢量寬度在Intel Iris Graphics 6100上實現OpenCL(MBP 2015)

這只是一個蘋果執行clGetDeviceInfo的錯誤?它至少應輸出char向量的首選寬度大於int向量。但他們都返回1.

該驅動程序是最新版本(2016年8月29日)。

編輯:

clGetDeviceInfo(devices[j], CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT, sizeof(maxWidth), &maxWidth, NULL); 

而且

clGetDeviceInfo(devices[j], CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, sizeof(maxWidth), &maxWidth, NULL); 

無論是對所有類型的GPU返回1。

CPU分別爲Char,Short,Int/Float返回16,8,4。

+0

你對clGetDeviceInfo的調用看起來像什麼? –

+0

clGetDeviceInfo(devices [j],CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,sizeof(maxWidth),&maxWidth,NULL); – Davidthefat

+0

我認爲這是Apple實施中的特殊行爲;沒有一個我以這種方式輪詢過的Mac硬件(當然,並非代表性樣本)已經爲矢量寬度返回了除1以外的任何內容。但是,在我的經驗中,蘋果的實施有比這更糟的錯誤... – pmdj

回答

1

在Intel GEN圖形上,float矢量的首選矢量寬度爲4,如float4中。對於某些內核,float8有時是有道理的。所以我認爲這是MacOSX驅動程序的問題。