logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

cuda编程笔记(7)--多GPU上的CUDA

在调用时,CUDA 会在主机申请一块页锁定内存再通过把这块主机内存映射为设备端地址空间中的指针;当 GPU 访问dev_a[i]时,会通过PCIe 总线从主机 RAM 中取数据,实现零拷贝访问。所以它虽然“看起来像显存指针”,但其实访问的是主机内存。下面用该机制重写cuda编程笔记(2.5)--简易的应用代码-CSDN博客里的矢量点乘#endifif (res!stride > 0;// 将每个

文章图片
cuda编程笔记(13)--使用CUB库实现基本功能

可以求数组所有元素的乘积;乘积Reduce没有提供接口,可以自己写一个可执行对象(仿函数类,lambda表达式等都可以)这里使用lambda表达式#endifif (res!}, 1.0f);// 分配临时空间// 第二次调用:执行乘积}, 1.0f);return 0;如果用VS,打开项目属性,在这里加:(用仿函数类就不用开启这个,如此即可)// 调用// 自定义规约操作该成员函数可以让我们实现

文章图片
cuda编程笔记(23)-- __threadfence()和__ldg()

是 CUDA 里的一个,用来保证线程在。它不会让线程阻塞等待其他线程,而是单纯限制编译器和硬件对内存操作的重排序。在 GPU 上,线程对全局内存的写入可能会被等机制延迟。调用后,CUDA 会强制将当前线程在调用之前的所有写操作“刷出”,保证:本线程写入的全局内存数据;内存访问不会跨过这个栅栏被重排序。,不会因为 GPU 的优化而打乱。只保证当前线程块(block)内的线程可见。保证整个 GPU 设

文章图片
cuda编程笔记(11)--学习cuBLAS使用

cuBLAS 是 NVIDIA 提供的 GPU 加速 BLAS 库;使用时需要#include <cublas_v2.h>如果使用VS,需要添加cublas.lib的链接;如果用命令编译,-l记得加上cublas类型:枚举类型作用:表示 cuBLAS API 的返回状态(错误码)。常用值:返回值检查(典型模式):cublasHandle_t类型:指向 cuBLAS 库上下文的句柄(类似于会话)。作

文章图片
#学习
cuda编程笔记(35)-- Cooperative Groups

这是 CUDA 的,属于,它在普通的 block / warp 层次之上引入了。

文章图片
cuda编程笔记(34)-- 内存访问控制与缓存提示

缓存层作用范围容量一致性可写典型用途每个 SM 独立小(128KB~192KB)不全局一致可写局部数据缓存每个 SM 独立小(48KB~128KB)无需一致性只读常量、查表L2 Cache全 SM 共享大(几 MB)全局一致可写跨 SM 通信、共享数据。

文章图片
VSCode的微软C++插件不能使用,clangd如何搭配cuda使用?

而clangd会根据编译命令的-I去寻找头文件引用,如果只有上述命令,生成的 compile_commands.json里的-I是没有cuda相关头文件的,所以需要额外加上下面的命令。clangd 现在会直接读取 compile_commands.json 里的命令,但是clangd不认识nvcc的编译命令,所以会一直报错,我们需要让clangd忽略这些内容。在上述文章配置里,我们的C_Cpp配置

文章图片
#vscode#c++#ide
cuda编程笔记(41)--异步数据拷贝

基于前两节 节的内容,本节将详细指导并演示 GPU 内存层级内的异步数据移动。内容涵盖:用于逐元素拷贝的、用于块状(一维和多维)传输的,以及用于寄存器到分布式共享内存拷贝的;并展示了这些机制如何与和集成。

文章图片
Windows版cuda+VSCode+CMake!一文搞定所有配置信息

这篇文章是在Linux环境里配置的,下面解释Windows下 怎么用vscode配置cuda。

文章图片
#vscode#ide#编辑器
    共 38 条
  • 1
  • 2
  • 3
  • 4
  • 请选择