
CUDA
文章平均质量分 53
张大饼的最爱
这个作者很懒,什么都没留下…
展开
-
CUDA 常量内存
/ 常量的声明、定义、初始化// 核函数中常量的使用int main()// 常量的赋值// 获取常量的值return 0;原创 2024-10-19 14:28:59 · 572 阅读 · 0 评论 -
CUDA 共享内存 shared memory
_shared__此功能(与线程同步结合)有许多用途,例如用户管理的数据缓存、高性能协作并行算法(例如并行缩减),以及在原本不可能的情况下促进全局内存合并。原创 2024-10-16 14:35:00 · 615 阅读 · 0 评论 -
CUDA 全局内存
全局内存在片外。特点是:容量最大、延迟最大、使用最多全局内存中的数据是所有线程可见的,Host端可见,且具有与程序相同的生命周期。原创 2024-10-16 13:04:13 · 1103 阅读 · 0 评论 -
CUDA - 如何让线程和内存对应
之前的GPU线程数和数组的大小是相等的,如果说不相等的情况下,GPU每个线程处理的就不是一个运算,而是多个数据的运算。因为数组大小是16*8 =128,先定义每个块的维度是(4,4),所以可以计算得到网格的维度是(4,2)。因为数组大小是16*8 =128,先定义每个块的维度是(4,1),所以可以计算得到网格的维度是(4,8)。想要GPU充分发挥他的优点就是每个线程处理不同的数据,避免同一个线程处理多个数据,或者避免线程没有组织的胡乱访问内存。针对本文示例,网格块定义为(4,1),线程块定义为(4,1)。原创 2024-10-15 14:25:36 · 434 阅读 · 0 评论 -
CUDA 运行时GPU信息查询
cuda 官网文档名:CUDA_Runtime_API。原创 2024-10-14 22:02:36 · 420 阅读 · 0 评论 -
CUDA - nvprof 性能刨析
这个就包含 命令耗时、调用次数、平均用时、最小用时、最大用时、命令名。原创 2024-10-14 21:23:56 · 417 阅读 · 0 评论 -
CUDA 事件计时
CUDA 事件 可以为主机代码和设备代码计时。可以看出第一次调用的时候最费时。原创 2024-10-14 20:30:57 · 279 阅读 · 0 评论 -
CUDA 设备操作实例
我的电脑上只有一个GPU。原创 2024-10-14 16:40:14 · 319 阅读 · 0 评论 -
CUDA 线程索引的计算
如下图:其中:线程是 CUDA 编程中的最小单位。每个线程块中都调用核函数,所以不同的核函数对应一个不同的线程,而每个线程都有自己的索引。其中, grid_size 、block_size 都可以配置一维、二维、三维。grid_size 是用来配置grid中 block 的规模/划分,而 block_size 是用来配置每个块block中 thread 的规模/划分。而在核函数中,通过关键字:gridDim 、 blockDim 获取主机中代码设置的grid_size 、block_size 值。通过原创 2024-10-14 14:05:47 · 1157 阅读 · 0 评论 -
CUDA Example 处理一张二维图像
CUDA 实战 5.3.3 基于共享内存的位图:突出了同步操作的重要性。原创 2024-10-10 23:21:44 · 220 阅读 · 0 评论 -
CUDAExample: 点积运算 Dot Product
定义的变量将被存储在共享内存中。对于GPU上启动的每个线程块,CUDA C编译器都将创建该变量的一个副本。线程块中每个线程都将共享这块内存,但是线程却无法看到也不能修改其他线程块中的变量副本。这样就使得一个线程块中的多个线程能够在计算上进行通信和协作。因此,在访问共享你日常时的延迟要远远低于访问普通缓冲区的延迟,使得共享内存像每个线程块的攻速缓存或者中间结果暂存器那样高效。如果想要在线程之间进行通信,还需要一种机制实现线程之间的同步。关键字: __share__引入的概念:共享内存。原创 2024-10-10 22:16:28 · 247 阅读 · 0 评论 -
CUDAExample: 波纹示例
需要用到的已经封装好的辅助类: CPUAnimBitmap。定义个grid 和 block 的维度都是二维的。原创 2024-09-27 16:33:51 · 259 阅读 · 0 评论 -
基于GPU的Julia集应用程序
配置好CUDA编译环境之后,vs创建一个CUDA的项目,会自动包含一个.cu文件,可以在当前文件中编写。因为当前的项目需要用到其他的头文件和库,需要加入对应的路径,这个和别的工程是一样的。4. 拷贝DLL到指定的路径。原创 2024-09-24 15:54:51 · 380 阅读 · 0 评论 -
CUDA - Image Data Copy
// 2D image unsigned short* pDeviceImageData; cudaMalloc(&pDeviceImageData, nImgHeight*nImgWidth*sizeof(unsigned short)); cudaError_t cudaerror = cudaSuccess; cudaerror = cud...原创 2018-08-14 17:05:57 · 491 阅读 · 0 评论 -
CUDA - JuliaSet
简单的入门示例#include "cuda_runtime.h"#include "device_launch_parameters.h"#include "cpu_bitmap.h"#include "book.h"#define DIM 1000struct cuComplex{ float r; float i; __device__ cuComplex (flo原创 2017-12-05 14:11:19 · 544 阅读 · 0 评论