在Ubuntu上使用C++进行GPU加速计算,通常可以通过以下几种方式实现:
CUDA是NVIDIA提供的并行计算平台和编程模型,允许开发者使用C/C++编写程序来利用NVIDIA GPU的强大计算能力。
首先,你需要安装CUDA Toolkit。可以从NVIDIA官网下载适合你系统的CUDA Toolkit版本,并按照官方指南进行安装。
# 下载CUDA Toolkit
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.2-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.2-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
创建一个简单的CUDA程序来测试GPU加速。
#include <iostream>
__global__ void helloGPU() {
printf("Hello, GPU!\n");
}
int main() {
helloGPU<<<1, 1>>>();
cudaDeviceSynchronize();
return 0;
}
编译并运行程序:
g++ -o helloGPU helloGPU.cu -lcudart
./helloGPU
OpenCL(Open Computing Language)是一个开放的并行计算框架,支持多种硬件平台,包括NVIDIA、AMD和Intel的GPU。
对于NVIDIA GPU,可以使用CUDA Toolkit中的OpenCL支持。对于其他硬件平台,可以安装相应的OpenCL SDK。
# 安装AMD GPU的ROCm SDK(适用于AMD GPU)
wget -q -O - https://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt-get update && sudo apt-get install rocm-dkms
创建一个简单的OpenCL程序来测试GPU加速。
#include <CL/cl.hpp>
#include <iostream>
#include <vector>
int main() {
std::vector<cl::Platform> platforms;
cl::Platform::get(&platforms);
auto platform = platforms[0];
std::cout << "Platform name: " << platform.getInfo<CL_PLATFORM_NAME>() << std::endl;
std::vector<cl::Device> devices;
platform.getDevices(CL_DEVICE_TYPE_GPU, &devices);
auto device = devices[0];
std::cout << "Device name: " << device.getInfo<CL_DEVICE_NAME>() << std::endl;
cl::Context context({device});
cl::CommandQueue queue(context, device);
std::cout << "Hello, OpenCL!" << std::endl;
return 0;
}
编译并运行程序:
g++ -o helloOpenCL helloOpenCL.cpp -lOpenCL
./helloOpenCL
SYCL(pronounced “sickle”)是一个开放标准,用于异构编程,支持CPU、GPU和其他加速器。
可以使用DPC++(Data Parallel C++)编译器,它是Intel提供的SYCL实现。
# 安装DPC++/C++编译器
sudo apt-get update
sudo apt-get install dpcpp
创建一个简单的SYCL程序来测试GPU加速。
#include <CL/sycl.hpp>
#include <iostream>
int main() {
sycl::queue q;
std::cout << "Hello, SYCL!" << std::endl;
return 0;
}
编译并运行程序:
dpcpp -o helloSYCL helloSYCL.cpp
./helloSYCL
通过以上几种方式,你可以在Ubuntu上使用C++进行GPU加速计算。选择哪种方式取决于你的硬件平台和具体需求。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Ubuntu中如何管理Python依赖