CUDAプログラムのレジスタ(レジスタのメモリを保存するため)と共有メモリ(より高速なアクセス)に符号なし短整数を使用することは理にかなっていますか?
テンプレートデバイス関数を(レジスタと共有メモリを使用して)作成し、uintとushortに特化しています。用途:uintの場合:25レジスタ、速度460MB/秒。ushortの場合:26レジスタ、速度420MB/秒。
したがって、unsignedshortintを使用する理由はありません。
私はCUDAの経験はあまりありませんが、署名されていない型の使用を避けるべきであることを読んだことがあります(Cuda C Best Practices Guide)。
共有メモリを使用することは、アプリのパフォーマンスを向上させる最良の方法です。カーネルを最適化する方法を考える必要があります。グローバル メモリから同じ値を頻繁に読み取る場合、またはカーネルで 1 つのスレッドを使用する必要がある場合 (すべてのカーネルがデータを SM にロードし、停止しますが、最初にグローバル メモリからではなく SM からデータを読み取ります)、共有メモリを使用します。
すべてはあなたが何をしたいかによります。カーネルを最適化したい場合は、コードを投稿してください。