:https://devblogs.nvidia.com/parallelforall/mixed-precision-programming-cuda-8/()
カーネルの内部で私は単に
D = __dp4a(A, B, C);
と、この結果を呼び出そう次に
error: identifier "__dp4a" is undefined
コンパイラエラーにIは、ヘッダファイル
を追加しようとしましたでも効果はありませんでした。最後に、私はこの行を追加:
__device__ int __dp4a(char4 srcA, char4 srcB, int c);
、その後、私は別のコンパイラエラーを取得:
Error using mex
ptxas fatal : Unresolved extern function '_Z6__dp4a5char4S_i'
私はのGeForce GTX 1080チタン上で実行されているCUDA v8.0に、計算能力の6.1を持っている、そしてそれはdp4aをサポートするはずです。何か不足していますか?これはMex/Matlab/Visual Studioの問題でしょうか?
これらの組み込み関数をサポートするアーキテクチャ用にコンパイルしていますか? – talonmies
アーキテクチャの設定方法がわかりません。私はちょうどmexcuda '-LC:\ Program Files \ NVIDIA GPUコンピューティングツールキット\ CUDA \ v8.0 \ lib \ x64でコンパイルしようとしました--gpu-architecture = compute_61 --gpu-code = compute_61' -lcurand mysource.cuエラーを修正しなかった –
CUDA 8と '__dp4a'を直接使用しても問題はありません(つまり、matlab/mexなし)。たとえば、[here](https://devtalk.nvidia.com/default/topic/979016/unable-to-reach-full-throughput-on-titan-x-pascal-for-__dp4a/)を参照してください。私はあなたのmatlabのバージョンやmex一般的な何かがあると仮定しますが、それは私にそれが何であるか明らかではありません。あなたは[mcve] –