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的相关知识,也可以在程序出现问题时提供一定的帮助:

  1. Thrust API 文档
  2. 常见问题列表
  3. 示例程序

参考:

  1. Thrust快速入门教程(一)——简介
  2. Thrust - Parallel Algorithms Library
1 0
原创粉丝点击