nvcc 如何处理内核中的 const 指针?
根据 nvidia 的说法,在参数传递期间为指针添加 const 和restrict可以启用 NVCC 进行积极优化,这是否严格遵循 C/C++ 方式?
假设 A 是指向数据缓冲区的指针,该缓冲区可能会被其他线程/流频繁更新,但在此测试内核调用期间内容不会被修改:
test<<<blocks, threads>>>(const int *__restrict__ A, int *__restrict__ B);
那么 NVCC 能否保持这一点的正确性:在每次内核调用时加载 A 中的更新数据,而不是加载一些预先缓存的过时数据?