0
点赞
收藏
分享

微信扫一扫

win10+vs2017+cuda11.1+pycuda+boost安装教程


文章目录

  • ​​1.前言​​
  • ​​2.VS2017​​
  • ​​3. cuda11​​
  • ​​4.pycuda​​
  • ​​5. boost​​
  • ​​6.测试boost​​

1.前言

默认已经安装好了anaconda以及cuda。本篇博文简单讲下相关环境的配置。

2.VS2017

下载vs2017,选择c++和python的开发工具
win10+vs2017+cuda11.1+pycuda+boost安装教程_命令行
添加环境变量:在变量Path中,新增cl.exe的全路径,我的全路径是“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe”
win10+vs2017+cuda11.1+pycuda+boost安装教程_c++_02
检验下
win10+vs2017+cuda11.1+pycuda+boost安装教程_c++_03

3. cuda11

到CUDA官网下载CUDA,除自动添加的path外,添加新的path

CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.1
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH =%CUDA_SDK_PATH%\common\lib\x64

4.pycuda

安装

pip install pycuda

测试

import pycuda.autoinit
import pycuda.driver as drv
import numpy

from pycuda.compiler import SourceModule
mod = SourceModule("""
__global__ void multiply_them(float *dest, float *a, float *b)
{
const int i = threadIdx.x;
dest[i] = a[i] * b[i];
}
""")

multiply_them = mod.get_function("multiply_them")

a = numpy.random.randn(400).astype(numpy.float32)
b = numpy.random.randn(400).astype(numpy.float32)

dest = numpy.zeros_like(a)
multiply_them(
drv.Out(dest), drv.In(a), drv.In(b),
block=(400,1,1), grid=(1,1))

print ( dest-a*b )

win10+vs2017+cuda11.1+pycuda+boost安装教程_命令行_04

5. boost

打开vs2017的x64命令行
win10+vs2017+cuda11.1+pycuda+boost安装教程_c++_05
切换到boost解压路径
win10+vs2017+cuda11.1+pycuda+boost安装教程_命令行_06
运行bootstrap.bat
win10+vs2017+cuda11.1+pycuda+boost安装教程_#include_07
运行bjam.exe
win10+vs2017+cuda11.1+pycuda+boost安装教程_#include_08
运行成功之后显示
win10+vs2017+cuda11.1+pycuda+boost安装教程_#include_09

6.测试boost

  • 打开VS2019,新建一个空C++项目,并创建main.cpp 文件。点击项目的属性。
  • .在vc++目录中包含目录添加boost路径D:\aboost\boost_1_73_0,库目录添加
    D:\aboost\boost_1_73_0\stage\lib。保存即可。
    win10+vs2017+cuda11.1+pycuda+boost安装教程_命令行_10

测试代码

#include <iostream>
#include <boost/sort/sort.hpp>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
vector<int> arr;
while (arr.size() < 100) arr.push_back(std::rand());
boost::sort::block_indirect_sort(std::begin(arr), std::end(arr));
for_each(std::begin(arr), std::end(arr), [](int& a) {
cout << a << "\t";
});
return 0;

}

测试结果
win10+vs2017+cuda11.1+pycuda+boost安装教程_c++_11
注意:这里运行要选择你之前命令行选择的版本,要不然boost不会包含在内,会出错。我这里选择的是win10+vs2017+cuda11.1+pycuda+boost安装教程_命令行_12


举报

相关推荐

0 条评论