2011-08-16 6 views
0

win-XP + VS2005でMerrillの基数ソートをコンパイルしようとするとエラーが発生します。エラー:asmオペランドタイプsize(1)が、制約 'r'によって暗黙の型/サイズと一致しません。 Duane MerrillのGPU基数ソート

エラー:asmオペランドタイプsize(1)が、制約 'r'によって暗黙の型/サイズと一致しません。

それはこれが32に64ビットのホスト・プラットフォームのために特別に書き込むインラインアセンブリ命令を含むCUDAカーネル・コードをコンパイルすることを試みることによって引き起こされると思われる次のコードに

#define B40C_DEFINE_GLOBAL_LOAD(base_type, dest_type, short_type, ptx_type, reg_mod)\ 
asm("ld.global.cg."#ptx_type" %0, [%1];" : "="#reg_mod(dest) : _B40C_ASM_PTR_(d_ptr + offset));\ 
... 
B40C_DEFINE_GLOBAL_LOAD(char, signed char, char, s8, r) 

おかげ

+0

これをコンパイルするのにどのバージョンのnvccとtoolchainを使用していますか? – talonmies

+0

ありがとう、Talonmies。私はツールキットv4.0を使用し、私のグラフィックカードはGT520です(機能は2.1です)。 s8のコマンド(「r」など)はありますか? – Yik

答えて

1

を発生です。

CUDAツールチェーンは、ホストCPUのアドレスモードと一致するGPUコードを出力することによって、ホストとデバイスの両方で一致することを保証します。この特定のコードはポインタが64ビットであると仮定していますが、コードは32ビットのホストモードでコンパイルされており、サイズの不一致が発生しています。

関連する問題