【磕盐随记】C++ CUDA编程的环境配置

CUDA C++ 编程指南学习 CUDA C++ 编程指南 (nvidia.com)2. 编程模型2.1. 内核CUDA C++ 扩展了 C++,允许程序员定义 C++ 函数,称为内核,当被调用时,N 个不同的CUDA 线程并行执行 N 次,而不是像常规 C++ 函数那样只执行一次。内核是使用声明说明符定义的,对于给定的内核调用执行该内核的 CUDA 线程数是使用新的执行配置语法指定的(请参阅每个执行内核的线程都被赋予一个唯一的线程 ID,可以通过内置变量在内核内访问该 ID。 阅读详情

的一 前言

最近写了个又臭又长的代码来验证idea,效果还行但速度太慢,原因是代码中包含了一个很耗时的模块,这个模块需要连续执行百次以上才能得到最终结果,经过实测模块每次执行消耗约20ms,而且两次执行之间没有先后关系,为了保证系统的实时性,我决定将这一部分运算放在GPU上执行。

二 环境配置(dirver CUDA + runtime CUDA)

要想使用GPU加速计算,首先需要一块性能还可以的Nvidia显卡(并不是所有的N卡都可以,需要RTX900系列及以上),我的是海鲜市场500块买的GTX 1060 6G版本,韩巨说这张卡虽然有点跟不上时代,但是做个小规模C++加速、训练个几万参的pytorch网络还是轻轻松松的。

2.1检查自己的系统

一个电脑里可以拥有两个CUDA API,一个是dirver CUDA(显示屏幕用的),一个是toolkit CUDA(加速深度学习),这两个API大多数人都是分开安装的(如果你都没有安装,例如你是新装的系统,或者是新插入的新卡,那么也可同时安装,同时安装的方法本文也写了),在正式安装前,应该先知道自己缺什么,否则如果系统中已有且没卸载,就会导致安装失败。

你可以通过nvidia-smi查看自己是否安装了dirver CUDA,

nvidia-smi

通过查找系统中是否有CUDA工具箱来确认自己是否安装了toolkit CUDA,

locate CUDA_Toolkit

2.2缺哪个装哪个

(1)dirver CUDA的安装:【参考链接】

注意,先禁用,否则容易驱动不匹配导致黑屏

sudo gedit /etc/modprobe.d/blacklist.conf
blacklist nouveau
options nouveau modeset=0

driver cuda的安装方法有多种,我是直接用图形化界面一键安装的,具体过程参考上面链接

安装显示驱动可能会出现黑屏、无法双屏、只能双屏不能单屏等问题,解决方案也请查看我上面给的链接。

(2)toolkit CUDA的安装:【参考链接】

我认为这个安装的重点是要选对版本,cuda_toolkit的版本不能高于dirver cuda的版本,我们可以通过nvidia-smi查看dirver cuda的版本:

根据dirver cuda的版本,我们在toolkit下载官网选择满足要求的toolkit进行下载即可,cuda_toolkit的版本可以在生成的代码中看到:

如果当前的toolkit满足你的版本要求,那么就新建个文件夹,在文件夹里执行生成安装命令的第1行:

wget xxxx #写你自己的

将安装包下载下来之后,先不要急着执行sh安装,先下载依赖:

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

然后再执行安装:

sudo sh xxxx.run #写你自己的

执行安装程序后跟着引导走就行,这里需要注意:

如果你已经安装了dirver CUDA,那就把Driver前的X去掉,如果你driver和toolkit都没装,那么就都选上,其实对于新装的系统or新插入的显卡,完全没必要分开装,直接在这里一起装了是最省时间的

最后不要忘了在.bashrc或.zshrc中添加cuda的路径:

#注意,你安装的并不一定是cuda-12.0,你要根据自己的版本写
export PATH=$PATH:/usr/local/cuda-12.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-12.0/lib64

2.3 C++CUDA测试

安装完后,可以写一个简单的cuda加速程序,看一下是否可以运行【参考链接】

C++开发基础之初探CUDA计算环境搭建 项目中有使用到CUDA计算的相关内容。但是在早期CUDA计算环境搭建的过程中,并不是非常顺利,编写此篇文章记录下。对于刚刚开始研究的你可能会有一定的帮助。在这个项目中,我们主要体会框架的用法,以及CUDA计算环境搭建的。通过编码实践,构建项目成功实验了CUDA计算环境搭建,为接下来的工作准备好环境。 阅读详情

相关推荐

CUDA详细安装及环境配置——环境配置指南 – CUDA+cuDNN+PyTorch 安装

本文详细介绍了如何确定显卡支持的CUDA版本、选择对应的cuDNN版本,并逐步安装CUDA、cuDNN和PyTorch。首先,通过命令行输入nvidia-smi.exe查看显卡支持的CUDA版本。接着,根据CUDA版本选择对应的cuDNN版本并下载。然后,从NVIDIA官方网站下载CUDA安装包,按照提示进行安装,并检查是否安装成功。同样地,下载cuDNN安装包,解压后将文件拷贝到CUDA安装目录中,并通过命令行验证安装是否成功。最后,根据PyTorch官网的指引,选择合适的安装命令进行PyTorch的安装

2501_90350274的博客 5098

CUDA编程学习0——环境搭建&环境详解

并行处理计算,CUDA编程学习初窥——环境搭建

Mr_yangsc的博客 8670

使用 C++ 进行CUDA编程教程

基本的 C 或 C++ 编程知识如何使用 Visual Studio IDECUDA 工具包英伟达显卡。

duoshehuan6005的博客 2091

window11系统CUDA、cuDNN 安装以及环境变量配置

虽然 CUDA 包含了一些基本的矩阵运算和线性代数函数,但它不直接包含深度神经网络相关的算法和优化。因此,为了使用 CUDA 进行深度学习任务,您需要安装一个额外的库,例如 cuDNN。因此,通过与 CUDA 结合使用,cuDNN 可以大幅提高深度学习应用的性能和效率。(CUDA Deep Neural Network Library)是 NVIDIA 提供的一个可选的库,用于优化深度神经网络的训练和推理性能。:这里我用 11.4版本为例,流程上是一样的,就是版本号不一样仅此而已。一般这里安装完毕后,会。

争渡的博客 8万+

CUDA开发环境搭建

本文详细介绍了在不同操作系统上搭建CUDA开发环境的完整流程。主要内容包括:1) 前期准备(GPU兼容性检查、系统要求);2) NVIDIA驱动安装方法(Windows/Linux);3) CUDA Toolkit安装与环境变量配置;4) cuDNN深度学习加速库的安装;5) 相关工具库(NCCL、TensorRT)的安装指南;6) 环境测试方法(CUDA示例程序、PyTorch/TensorFlow测试);7) 常见问题解决方案。文章以步骤化方式呈现,涵盖Windows和Linux系统下的具体操作命令,并

shangjg3的博客 812

MTK Linux DRM分析(八)- KMS drm_crtc.c

CRTC 在 Linux DRM 子系统中是显示控制的核心,负责时序生成、模式设置和管线的调度。理解其工作原理和 API 对于进行底层图形开发、调试显示问题或 simply understanding how your graphics stack works 都至关重要。

iTom1900 1350

使用CLion进行cuda编程,并使用cuda-gdb对核函数进行debug,这可能是全网你能够找到的最详细的CLion和cuda编程环境配置教程了

在确定了研究方向后,便开始着手研究相关的文献和Code,指导我看到了3D Gaussian Splatting。以往的DL工作的代码几乎都只建立在Python语言基础上,如果只是Python到还好,勉强还能看懂,但对于CUDA部分的C++代码,那是真看不懂了。而3DGS正是我接触CUDA编程的契机,使得我开始注重自己的全面发展,不想仅仅做一个DL农工,还需要研究一些更深入的东西,因此学习CUDA编程是有必要,而且学习CUDA编程也不亏,顺便把C++的知识也一并不上了。

qq_42940160的博客 6419

Unity游戏开发客户端Lua基础

Unity游戏开发客户端面经之 lua 篇

Sea3752的博客 1万+

如何在CPP项目中使用CUDA

如何在CPP项目中使用CUDA1.创建一个CPP项目2.添加.cu/.cuh文件3.修改.cu文件4.工程配置修改5.配置成功 很多时候我们需要对一个cpp项目中某一部分进行GPU加速,如下步骤能够实现这一目的。 1.创建一个CPP项目 直接新建或者打开已有的cpp项目 2.添加.cu/.cuh文件 右键项目,新建或者添加已有的.cu/.cuh文件 3.修改.cu文件 注意:.cpp文件不能直接调用kernel函数(添加了cuda的头文件也不行) 于是我们可以以函数调用的方式,从.cpp文件调用一个.cu里

GLinttsd的博客 4407

Python爬虫实战:5分钟搞定东方财富网股票数据抓取(附完整代码)

本文详细介绍了如何使用Python爬虫快速抓取东方财富网的股票数据,包括环境配置、API分析、核心代码实现及优化技巧。通过简单的requests和pandas库,5分钟内即可获取高质量股票数据,适合量化交易和数据分析初学者。

weixin_29040367的博客 1186

用Python搞定超效率SBM模型:从数据清洗到结果可视化全流程指南

本文详细介绍了如何使用Python实现超效率SBM模型,从数据清洗到结果可视化的全流程指南。超效率SBM模型作为传统DEA的进化版本,能有效处理非期望产出(如环境污染)并对高效单元进行精细排序。通过实战案例和代码示例,帮助读者掌握这一先进模型的Python实现技巧,提升效率评估的准确性和可视化效果。

silver的专栏 651

cpp文件调用cuda函数

C++中使用CUDA编程

m0_56015193的博客 2689

硬件笔记——HDMI接口

HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。

2501_94625908的博客 543

Pytorch CUDA CPP简易教程,在Windows上操作,Linux上同理

这学期确定了研究方法,具体为三维重建相关,转而研究三维重建相关的知识。最近3D Gaussian Splatting方法效果十分的好,并且开源了源代码,因此十分值得对其源码进行研究,源码中对于可微光栅化的实现是基于CUDA实现的,因此想要后续对这块内容进行改进,则必须了解CUDA程序是如何编写的,作为一名DL农工,学习CUDA编程也有助于自己对于整个DL流程的理解,也能够进一步拓展自己的编程技术,因此无论出于什么目的,作为DL农工,我认为有必要掌握这项技术。

qq_42940160的博客 1240

实战案例四:Claude Code + Excel 技能处理表格数据

Excel 是商业世界中最通用的数据工具。无论是财务报表、销售数据还是项目计划,Excel 无处不在。本案例将展示如何利用 Claude Code 的 Excel 技能,自动化处理复杂的表格数据,告别繁琐的手工操作。

gaoxiang_120的专栏 475

WorkBuddy 技能指南:基础办公与文档处理

WorkBuddy 不仅仅是一个对话工具——它通过技能(Skills)系统,将通用 AI 助手转变为具备专业领域能力的智能助手。每个技能都是一套经过精心设计的"能力包",包含专业知识、工作流程和专用工具。本文聚焦于文档处理类技能——这是日常工作中使用频率最高、最实用的能力集合。

u011186532的专栏 705

C++中进行CUDA编程

C++ 是一种常用的高性能计算语言,它具有高效的内存管理和并行处理能力。CUDA(Compute Unified Device Architecture)是 NVIDIA 公司推出的一种用于在 NVIDIA GPU 上编程的接口。CUDA 允许开发者以高效的方式利用 GPU 的并行处理能力,从而提高计算性能。介绍如何使用 C++ 和 CUDA 搭建高性能计算系统。

heyiqiunet的博客 2356

基于龙虾Claw的会议纪要自动提取与重点内容总结办公场景实践

本文介绍如何使用龙虾Claw构建会议纪要自动提取与重点内容总结系统,实现会议内容的智能处理。

一键难忘的博客 254

CUDA CUDA C++ 编程指南

CUDA 编程指南目录

caocaoshiwang的博客 1401

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

【TensorRT C++ API模型加速】TensorRT环境配置、模型转换、CUDA C++加速、TensorRT C++ 加速

TensorRT(Tensor Runtime,TRT):由 NVIDIA 开发,专为 NVIDIA GPU 设计的,用于深度学习高性能推理的SDK (software development kit ,软件开发工具包),可为推理应用程序提供低延迟和高吞吐量。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 2880

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

在C++项目中集成CUDA程序加速(从环境配置讲起)

因为我自己的 C++ 项目需要用到CUDA加速计算,但是又从来从来没有尝试过,所以这里记录一下整个过程。希望对大家有帮助!

A_water_的博客 5559

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

CUDA编程二、C++和cuda混合编程的一些基础知识点

上一篇博客,介绍了GPU结构和cuda编程的一些基础知识,最后用cuda实现了向量加法。这一篇博客中主要是学习C++和cuda混合编程的一些知识点,一是C++代码执行的过程,二是C++和cuda混合编程的实现。​​​​​​​。

HUSTHY的博客 2897

CUDA C++ 编程指南

虽然 CPU 被设计为擅长以尽可能快的速度执行一系列称为线程的操作,并且可以并行执行几十个这样的线程,但 GPU 被设计为擅长并行执行数千个线程(摊销较慢的单线程性能以获得更大的吞吐量)。面临的挑战是开发能够透明地扩展其并行性的应用程序软件,以利用数量不断增加的处理器核心,就像 3D 图形应用程序透明地扩展其并行性到具有广泛不同数量的核心的多核 GPU 一样。多线程程序被划分为彼此独立执行的线程块,因此具有更多多处理器的 GPU 会比具有更少多处理器的 GPU 在更短的时间内自动执行程序。

qq_46264636的博客 1942

【CUDA】什么是CUDA?什么是CUDA编程?

CUDA(Compute Unified Device Architecture,统一计算设备架构),是显卡厂商NVIDIA推出的一种并行计算平台和编程模型。概念中的重点是“统一”二字:“统一”的含义是指该架构将不同类型的计算设备(主要是CPU和GPU)整合到一个统一的编程模型中,开发者可以使用相同的编程语言和工具集,在CPU和GPU上执行计算任务,而无为 CPU 和 GPU 分别编写完全不同的代码(既同时开发 CPU 和 GPU 上的共同程序),这种统一性简化了并行计算的开发流程传统方式。

我的笔记本 5736

CUDA与C++混合编程

CUDA与C++ 混合使用的目的是GPU加速C++程序,Cuda通过C语言嵌入到C++中步骤如下: 通过性能分析工具(如vs)找到CPU程序最耗时的多个地方,并确定耗时程序的入口函数 将CPU函数进行清理 1.将循环部分的代码找出来。 2.将函数内所用到的数据从C++类结构变成C的结构体。 3.标准化输入输出,保证其为C结构,并与原程序的数据进行无缝对接。 4.将循环内部的函数也做相同处...

Summer的博客 8640

SLAM学习基础篇2,Vscode中的C++环境配置(顺带讲解cuda配置)

文章到此正片才开始,vscode不会自带g++,需要自己下载和配置,因为我们不想使用Visual Studio(卸载好像有一点问题,而且影响了我原有的环境),而minGW已经很久没有在官网维护了,所以我们选择:自带minGW的dev-C++安装时选择english就好,打开时可以选择简体中文······但这不重要,我们至少目前不用他,我们的目标是用里面带的minGW。找到下载好的cuda的安装包,双击打开,设置好要安装的路径,点击OK等待安装,这些不做演示,因为已经下载。(5)显示安装完成,结束。

2303_80042891的博客 2658
上一篇: ubuntu zsh简明配置【自用】
下一篇: 【实用技能】ROS包间依赖的相关配置
全日制学生混
博客等级 码龄7年 352粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值