同じ CUDA カーネル内で以前に割り当てられた共有メモリの割り当てを解除する方法はありますか? たとえば、ある時点で定義したカーネル内
__shared__ unsigned char flag;
__shared__ unsigned int values [ BLOCK_DIM ];
後でコード内で、以前に定義された共有メモリを考慮して、ブロックに設定された共有メモリ制限を超える配列を定義する必要があります。以前に定義された共有メモリを再利用するという汚い作業をせずに、どうすればそれを行うことができますか? それとも、NVCC はカーネル トレースに沿って依存関係を認識し、共有変数の使用が完了するたびにその依存関係を解放するほどスマートなのでしょうか? 私のデバイスは GeForce GTX 780 (CC=3.5) です。