Thrust快速入门教程(一) —— Introduction
来源:互联网 发布:高中生物知乎 编辑:程序博客网 时间:2024/06/06 04:47
Thrust是一个基于STL,针对CUDA开发的C++模板库。Trust提供与C++、CUDA、 OpenMP和TBB完全兼容的接口,可以使我们用最小的编程代价来实现高性能的并行程序。
Thrust提供了丰富的数据并行算法,例如scan、sort、reduce等,我们可以结合这些算法编写出简洁、可读性强的代码。我们只需要提供一些高级算法描述他们的计算,并将计算的实施完全托管给Thrust,Thrust会自动选择最有效率的算法实现。因此,程序员得以快速构建CUDA程序,并能够获得极高的稳定性和性能。
此文档简述了如何使用Trust开发CUDA程序。即使你的C++与CUDA经验有限,也能够顺利学习该文档。
安装与版本
在安装CUDA Toolkit时,Trust已经被包含CUDA的安装目录中。因此,无需单独安装。另外Thrust是一堆头文件,也不需要额外的配置。新版本的Thrust会在GitHub继续更新。
更新Thrust库的方法也很简单,只需要下载最新版本的文件,覆盖之前存在的旧版本库即可。
- /usr/local/cuda/include/ Linux和Mac OSX系统
- C:\CUDA\include\ Windows系统
让我们使用Thrust来编写一段代码,来确定Thrust安装成功。将下面代码命名为version.cu
#include <thrust/version.h>#include <iostream>int main(void){ int major = THRUST_MAJOR_VERSION; int minor = THRUST_MINOR_VERSION; std::cout << "Thrust v" << major << "." << minor << std::endl; return 0;}
使用nvcc或者vs编译version.cu。如果安装正确,终端会输出以下命令(下面是linux系统的例子):
$ lsthrust version.cu$ nvcc version.cu -o version$ lsthrust version version.cu$ ./versionThrust v1.8
本文只是Thrust的入门知识。以下资源可以帮助开发者了解更多Thrust的相关知识,也可以在程序出现问题时提供一定的帮助:
- Thrust API 文档
- 常见问题列表
- 示例程序
参考:
- Thrust快速入门教程(一)——简介
- Thrust - Parallel Algorithms Library
1 0
- Thrust快速入门教程(一) —— Introduction
- Thrust快速入门教程(一)——简介
- Thrust快速入门教程(一)——简介
- Thrust快速入门教程(二)——Vector的使用
- Thrust快速入门教程(三)——算法 1
- Thrust快速入门教程(三)——算法 2
- Thrust快速入门教程(二)——Vector的使用
- Thrust快速入门教程(二) —— Vectors
- Thrust快速入门教程(三) —— Algorithms
- Thrust快速入门教程(四) —— Fancy Iterators
- Thrust快速入门教程(三)——迭代器与静态调度
- Thrust快速入门教程(三)——迭代器与静态调度
- 凸优化(一)——Introduction
- 凸优化(一)——Introduction
- objective-c快速入门教程(一)
- MyBatis入门教程(一):快速入门
- MiniUI快速入门教程(一)下载安装
- QT Creator 快速入门教程 读书笔记(一)
- opencv-在图像上显示字符(不包括中文)
- css3创建导航链接效果集锦滑动文字变颜色
- spring placeholder 如果占位符没有对应值,仍要继续执行
- Linux查看HotSopt虚拟机GC线程的CPU占用率
- javascript学习记录5—函数
- Thrust快速入门教程(一) —— Introduction
- MATLAB日记03
- OC-Runtime
- openwrt 编译
- 黑客成长之路图
- android 框架volley安装及使用
- Placement new 存在的理由
- char*str与char str[]的差异。
- poj_2531