
CUDA
文章平均质量分 68
xxiaozr
这个作者很懒,什么都没留下…
展开
-
cuda和cudnn安装
CUDACUDA 的安装去英伟达官网寻找与 NVIDIA 驱动相对应的 CUDA 版本sudo 运行 run 文件一路按 D ,选 accept是否安装最低配的 NVIDIA 驱动: 否是否安装 OpenGL Libraries, 若双显卡选***否*** ,因为可能会出现黑屏或者循环登录问题是否安装CUDA: 是是否链接 CUDA 例子: 否将 cuda bin 与 lib 写进环境(.bashrc)export PATH="/usr/local/cuda-9.0/b原创 2020-06-03 11:26:56 · 298 阅读 · 0 评论 -
GPU 高性能编程 CUDA : 线程协作
并行线程块的分解:在矢量加法中,为矢量中的每一个元素都启动一个线程块add<<<N,1>>>(dev_a,dev_b,dev_c);尖括号中的第一个参数创建的线程块的数量,第二个参数表示每个线程块中创建的线程数量,所以上述启动的线程数量为 N ( N*1)使用线程实现 GPU 上的矢量求和:需要修改两个地方,第一个地方是add<<<N,...原创 2018-05-10 16:27:07 · 572 阅读 · 0 评论 -
GPU 高性能编程 CUDA : CUDA C 简介
先编写一个 hello world 和 C 没有什么区别我们将 CPU 以及系统的内存称为主机,将 GPU 及其内存称为设备,hello world 示例程序不考虑主机之外的任何计算设备核函数的调用__global__ void kernel ( void ) {}int main(){kernel<<1,1>>();}kernel() 函数,并且带有修饰符 __globa...原创 2018-04-25 21:21:10 · 442 阅读 · 0 评论 -
GPU 高性能编程 CUDA : CUDA 架构和准备工作
NVIDIA GPU 是基于 CUDA 架构而构建的,要在 CUDA GPU 上编程需要使用 CUDA C 语言,CUDA C 是在 C 上进行了一些扩展,使其能够在 NVIDIA GPU 这样大规模并行机上进行编程早起 GPU 的主要目标是通过可编程的计算单元为屏幕上的每一个像素计算出一个颜色值,这些计算单元也称为像素着色器。像素着色器根据像素在屏幕上的位置(x,y)以及一些其他的信息,对各种输...原创 2018-04-24 23:35:04 · 306 阅读 · 0 评论 -
GPU 高性能编程 CUDA : CUDA C 并行编程
aaa原创 2018-04-25 21:24:42 · 404 阅读 · 0 评论 -
GPU 高性能编程 CUDA :原子性
NVIDIA GPU 的计算功能集:NVIDIA 将 GPU 支持的各种功能统称为计算功能集nvcc -arch=sm_11//告诉编译器需要1.1版本或者更高nvcc -arch=sm_12//告诉编译器需要1.2版本或者更高原子操作简介:在执行过程中不能分解为更小的部分,将满足这种条件限制的操作称为原子操作,当有数千个线程在内存访问上发生竞争时,这些操作可以保证在内存上实现安全的操作...原创 2018-05-18 19:06:27 · 759 阅读 · 0 评论 -
GPU 高性能编程 CUDA : 常量内存与事件
常量内存:CUDA C 可以使用全局内存,共享内存和常量内存常量内存用于保存在核函数执行期间不会发生变化的数据,64kb常量内存的声明方法和共享内存是类似的,在变量前加上 __constant__ 修饰符,常量内存不需要先定一个指针,然后使用 cudaMalloc() 来为指针分配 GPU 内存,当我们将其修改为常量内存的时候,不在需要调用 cudaMalloc() 函数或者 cudaFree()...原创 2018-05-12 11:03:15 · 615 阅读 · 0 评论 -
GPU 高性能编程 CUDA : 纹理内存
纹理内存:和常量内存类似的是,纹理内存同样缓存在芯片上,某些情况下可以减少对内存的请求并提供更高效的内存带宽,纹理缓存是专门为那些在内存访问模式中存在大量空间局部性的图形应用程序而设计的使用纹理内存,首先需要将输入的数据声明为 texture 类型的引用//这些变量将位于 GPU 上texture<float> texConstSrc;texture<float> te...原创 2018-05-15 15:18:26 · 1053 阅读 · 0 评论 -
GPU 高性能编程 CUDA : 流
对于大规模数据的并行运算,GPU上的执行性能远高于 CPU 上的性能,除此之外, NVIDAI 图像处理器还支持另一种类型的并行性,类似于 CPU 的多线程应用程序中的任务并行性。任务并行性是指并行执行两个或者多个任务,而不是在大量数据上执行同一个任务。页锁定主页内存之前都是使用 cudaMalloc() 在 GPU 上分配内存,以及通过标准 C 库函数 malloc() 在主机上分配内存除此之外...原创 2018-05-26 21:38:23 · 6936 阅读 · 0 评论