2

この情報はどこから来たのか気になります。これらの変数にアクセスするとき、本当にレジスタにアクセスしているのか、それとも他の場所にアクセスしているのか? (私の推測では、これらはレジスター値です。) レジスター
に格納することで速度が向上するのでしょうか?

__global__ void myKernel(int, float, int*) {
   const int reg1= threadIdx.y      // gonna use/Rd reg1 some 50 different places
   :  
   :  
}

または、threadIdx.y を約 50 回読み取るのと同じくらい高速でしょうか?

4

1 に答える 1

4

組み込み変数は、さまざまなコンピューティング機能のさまざまな場所にあります。最近のデバイスでは、情報は専用レジスタにパックされています。アセンブリ (cuobjdump -sass) では、命令 S2R を使用して、特殊レジスタから汎用レジスタに値を移動します。値を auto 変数に割り当てる操作では、コンパイラーがその値を一定期間レジスターに割り当てる必要はありません。コンパイラは、組み込み用のレジスタに最適な割り当てを行っている可能性があります。

于 2012-10-05T21:28:08.640 に答える