![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cuda
shchojj
这个作者很懒,什么都没留下…
展开
-
Accelerated Ray Tracing (十)
https://developer.nvidia.com/blog/finite-difference-methods-cuda-cc-part-1/有限差分方法通过使用共享内存来合并全局内存访问,在有效带宽上获得了大约一个数量级的改进。本片如何使用共享内存以有限差分代码增强数据重用。除shared memory,,我们还将讨论constant memory,这是一种缓存的read-only memory,已优化用于跨块(或扭曲)中的线程进行统一访问。Problem Statement: 3D转载 2020-10-26 16:21:30 · 161 阅读 · 0 评论 -
Accelerated Ray Tracing (九)
https://developer.nvidia.com/blog/efficient-matrix-transpose-cuda-cc/Matrix Transpose对单精度值矩阵的转置,该矩阵可以在out-of-place的位置进行操作,即输入和输出是内存中的单独数组。为了表示简单,我们只考虑维数是32的整数倍的方阵。它由几个内核以及执行典型任务的主机代码组成,如主机和设备之间的分配和数据传输、启动和计时以及验证其结果、释放主机和设备内存。除了执行几种不同的矩阵转置之外,我们还运行简单的矩转载 2020-10-26 15:18:25 · 117 阅读 · 0 评论 -
Accelerated Ray Tracing (八)
https://developer.nvidia.com/blog/using-shared-memory-cuda-cc/Shared Memory在上一篇文章中,我讨论了如何将一组线程访问的全局内存合并到一个事务中,以及对齐和跨步如何影响不同代CUDA硬件的合并。对于最新版本的CUDA硬件,未对齐的数据访问不是一个大问题。然而,无论使用哪种CUDA硬件,跨越全局内存都是有问题的,而且在许多情况下似乎是不可避免的,比如在沿着第二个维度和更高维度访问多维数组中的元素时。但是,如果我们使用共享内存,在转载 2020-10-26 14:47:18 · 150 阅读 · 0 评论 -
Accelerated Ray Tracing (七)
https://developer.nvidia.com/blog/how-access-global-memory-efficiently-cuda-c-kernels/global memoryCUDA 不同的显存,他们各自有不同的范围,生存期和缓存行为。设备DRAM中的global memory,用于主机和设备之间的传输以及用于内核的数据输入和输出。global表明作用域,可以被host和device一起访问。可以使用__device__声明说明符在global(变量)范围内声明global.转载 2020-10-26 14:04:08 · 164 阅读 · 0 评论 -
Accelerated Ray Tracing (五)
https://developer.nvidia.com/blog/how-optimize-data-transfers-cuda-cc/优化数据传输:减少host和device之间数据传输。 更高的带宽。 将许多小传输批量处理为一个较大的传输性能更好,因为它消除了每次传输的大部分开销。 主机和设备之间的数据传输有时会与内核执行和其他数据传输重叠。int main(){ const unsigned int N = 1048576; const unsigned i..转载 2020-10-24 16:25:00 · 106 阅读 · 0 评论 -
Accelerated Ray Tracing (四)
https://developer.nvidia.com/blog/how-query-device-properties-and-handle-errors-cuda-cc/在CUDA C/ c++中如何查询设备属性和处理错误Compute CapabilitycudaDeviceProp类型中包含的许多设备属性,特别是major和minor。这些描述了设备的计算能力,这通常在major.minor中给出。并指示第几代架构。将thread分组为线程block的方式模仿了在GPU上分组线转载 2020-10-24 15:45:01 · 85 阅读 · 0 评论 -
Accelerated Ray Tracing (三)
https://developer.nvidia.com/blog/how-implement-performance-metrics-cuda-cc/host和device之间是如何同步的。cudaMemcpy可以进行cudaMemcpyHostToDevice和cudaMemcpyDeviceToHost的同步(阻塞)。数据同步不会被CUDA其他线程打断。但是Kernel运行时异步的。因为数据传输是阻塞的,也就是说如果最后结果从device传输到host,因为数据传输的阻塞性,可以保证之前异步转载 2020-10-23 17:30:23 · 101 阅读 · 0 评论 -
Accelerated Ray Tracing (二)
https://developer.nvidia.com/blog/even-easier-introduction-cuda/首先是一个简单的c++数组加法#include <iostream>#include <math.h>// function to add the elements of two arraysvoid add(int n, float* x, float* y){ for (int i = 0; i < n; i++)转载 2020-10-23 16:47:23 · 160 阅读 · 0 评论 -
Accelerated Ray Tracing (一)
https://developer.nvidia.com/blog/easy-introduction-cuda-c-and-c/host指的是CPU及其内存,device指的是GPU及其内存。在主机上运行的代码可以管理host和device上的内存,还可以启动kernels,这些kernels是在device上执行的functions。这些kernels由许多GPU线程并行执行。声明和分配主host和device内存。 初始化host数据。 将数据从host传输到devic...转载 2020-10-23 15:55:11 · 103 阅读 · 1 评论 -
CUDA sample volumeRender
CUDA sample volumeRender如果出现错误,记得判定一下OpenGL是不是在集成显卡上生成的,如果是则把集成显卡禁用掉就行了。1、thread、block、gridhttps://en.wikipedia.org/wiki/Thread_block_(CUDA_programming)https://nyu-cds.github.io/python-gpu/02-cuda/https://developer.nvidia.com/blog/cuda-refreshe转载 2020-10-22 17:42:17 · 627 阅读 · 0 评论 -
CUDA error at (cudaErrorOperatingSystem) “cudaGraphicsGLRegisterBuffer(vbo_res, *vbo, vbo_res_flags)
参考:https://bbs.gpuworld.cn/index.php?topic=59054.0查了老半天,问题就是OPENGL在集成显卡上,和N卡交互出了问题,最简单的方法就是禁用显卡。转载 2020-07-31 16:18:10 · 2493 阅读 · 8 评论 -
CUDA sample -asyncAPI
创建一个项目vs项目。1、配置环境(自己就配置了)2、因为我们使用了cuda sample中的asyncAPI,所以里面用到了文件夹下comm配置的时候可以参考2、把asyncAPI.cu赋值过来3、右击asyncAPI.cu4、代码简要分析__global__ void increment_kernel(int *g_data, int inc_value){ int idx = blockIdx.x * blockDim.x + threadIdx转载 2020-07-31 11:46:24 · 657 阅读 · 0 评论