gpt4 book ai didi

memory - CUDA:不同线程可以同时从同一内存位置读取吗?

转载 作者:行者123 更新时间:2023-12-02 11:25:38 35 4
gpt4 key购买 nike

我正在为 NVIDIA Tesla C2050 编写一个 CUDA 程序,其中每个线程必须以有序方式读取从位置 0 到 n-1 的字符串。字符串大小很小,因此可以轻松放入常量、共享或纹理内存中。

我的问题是:不同的线程会同时访问字符串还是串行访问字符串?看来这会影响我的程序的运行时间。

最佳答案

答案是“是和否”。这取决于内存的类型。

正如@Jawad 评论的那样,纹理内存被缓存,但我不完全确定读取是否同时完整,或者它是序列化并从缓存中读取的。

另一方面,当半扭曲中的线程从同一位置读取时,常量内存会被广播,但当从多个位置读取时,它会被序列化。这种类型的内存也会被缓存。

最后,如果某些线程尝试读取同一组内存(也称为组冲突),则共享内存将被序列化但是 *在服务一个内存读取请求时可以同时广播到多个线程*。

这还取决于您的显卡的计算能力。我建议您查看 NVIDIA CUDA C 编程指南(v.3.2 - 附录 G. 章,G.3 计算能力 1.x 和 G.4 计算能力 2.x 部分)。

希望这有帮助。

关于memory - CUDA:不同线程可以同时从同一内存位置读取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585521/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com