CUDA 进阶编程 Thrust库使用

您所在的位置:网站首页 thrust自行车 CUDA 进阶编程 Thrust库使用

CUDA 进阶编程 Thrust库使用

2023-07-22 06:44| 来源: 网络整理| 查看: 265

文章目录 Thrust库的介绍Vector简单示例底层实现 使用技巧利用vector传输数据不要一个个的复制数据

Thrust库的介绍

thrust是NVIDIA推出的一个高性能的GPU版本并行开发库,thrust提供了丰富的算法和容器, 我们可以使用这些工具来简化我们的编程

thrust的库的API都是STL like的, 对于STL比较熟悉的人学习起来会比较简单, 当然thrust库提供了很多C++11和C++17 风格的接口,如果对于C++11 和 C++17 不熟悉的人学习起来还是有点吃力,推荐在学习thrust库前先把C++11 和 C++17的库学习下, thrust库提供的不过都是这些接口的并行版本

C++参考网页

thrust库虽然提供了高性能的接口,帮我们简化了很多代码,但是本质上还是依赖于CUDA的底层那套机制,无非是cudaMemcpy之类的, 所以在实际项目中,推荐还是要会这一套接口, 否则在使用的过程中, 但是很容易写出低效的版本

Vector

vector是thrust最基础也是最简单的容易,分为host_vector和device_vector host_vector就是指在CPU和内存里面的数据 device_vector就是指GPU里面的数据 vector提供iterator进行遍历等操作, 所有thrust的容器都支持迭代器

简单示例 #include #include #include int main(void) { thrust::host_vector H(4); // 初始化host_vector H[0] = 14; H[1] = 20; H[2] = 38; H[3] = 46; std::cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3