2016-09-06 8 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グラフィックス6100(MBP 2015)のOpenCLの実装

AppleのclGetDeviceInfo実装のバグですか?少なくとも、charベクトルの好ましい幅がintベクトルよりも大きいことを出力する必要があります。しかし、彼らはすべて戻ってきています。

ドライバは最新バージョンです(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(デバイス[j]、CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT、sizeof(maxWidth)、およびmaxWidth、NULL); – Davidthefat

+0

私はこれがAppleの実装からの独特な動作だと思います。私がこのようにしてポーリングしたMacハードウェア(どれも代表的なサンプルではない)は、ベクトル幅に対して1以外のものを返していません。しかし、その後、Appleの実装は私の経験でこれよりもはるかに悪いバグを持っています... – pmdj

答えて

1

インテルGENグラフィックスでは、float4の場合と同様に、floatベクトルの好ましいベクトル幅は4です。いくつかのカーネルでは、float8が意味をなさないことがあります。だから私はこれがMacOSXドライバの問題だと思う。

関連する問題