特别的是, 当kernel产生了一个较大的结果, 例如填充了128MB的结果缓冲区,
而你只需要根据结果缓冲区中的情况, 不可在写代码的时刻预测的, 只使用里面的, 例如16MB的内容,那么应当考虑使用...CUDA引入了一个__restrict__的扩展来设定C99的Restricted Pointer
(VC和GCC有各自的关键字, 无非是前后的下划线和restrict的位置的区别不同, 而CUDA...C的版本则是前后都有两个下划线)
例如VC版本的是__restrict
使用restrict解决了一个重要的C语言里的问题.就是指针不再像以前那样能乱指了(被restrict了么),如同本章节的说法...暗示它通过一个指针的写入改变了另外一个指针的值.因此编译器可以放心的进行一些优化, 例如通过b写入后, 不必担心a里面之前读取到的值是否已经改变, 是否需要重新读取, 而可以安心的使用老值。...提高性能.请注意, 这只是一个暗示, 如果你暗示了编译器是一套, 但是做的是另外一套做法,例如, 有的读者比较调皮, 想尝试一下使用重叠的3个指针, 却告诉了编译器是__restrict__的, 结果会如何