- 博客(16)
- 收藏
- 关注
原创 CUDA编程之CUDA Sample-5_Domain_Specific-volumeFiltering(光线追踪)
volumeFiltering演示了使用 3D 纹理和 3D 表面写入进行 3D 体积过滤。它从磁盘加载一个 3D 体积,并使用光线步进和 3D 纹理进行显示。
2024-08-28 18:07:26
756
原创 CUDA编程之CUDA Sample-3_CUDA_Features-bindlessTexture
CUDA 中的 演示了如何在 CUDA 中使用"无绑定"的纹理访问方式。纹理采样背景:无绑定纹理采样:示例程序解析:性能优势:这个sample解释了cudaSurfaceObject, cudaTextureObject, MipMap 在CUDA里的支持。Mipmaps 是一个预先计算的纹理图像序列,其中每一个级别的图像大小是前一级别的一半。这种方式可以避免在纹理缩小时出现的别名失真问题。具体来说:什么是 Mipmaps:Mipmaps 的作用:Mipmaps 的生成和使用:Mipmaps 是一种用于
2024-08-27 17:58:49
1022
原创 CUDA编程之CUDA Sample-5_Domain_Specific-simpleGL
OpenGL,全称为"Open Graphics Library",是一种跨语言和跨平台的 API,用于显示 2D 和 3D 计算机图形。OpenGL 可以在硬件级别实现, NVIDIA 公司提供的 OpenGL 实现是随 CUDA 驱动程序一起提供的。GLUT 是 OpenGL 实用程序工具包,一种独立于窗口系统的工具包,用于编写 OpenGL 程序。它实现了一个简单的窗口应用程序编程接口(API)来使用 OpenGL。GLUT 大大简化了学习和探索OpenGL 编程的过程。
2024-08-27 17:07:43
662
原创 CUDA编程之NVRTC——simpleAssert_nvrtc
NVRTC是一个CUDA C++的运行时编译库。它接受以字符串形式表示的CUDA C++源代码,并创建可用于获取PTX的句柄。由NVRTC生成的PTX字符串可以通过cuModuleLoadData和cuModuleLoadDataEx来加载,并通过CUDA驱动API的cuLinkAddData与其他模块链接。NVRTC提供了一种在运行时编译和链接CUDA C++代码的方法,这可以带来更好的优化和性能。它是CUDA工具链的一部分,补充了离线编译的功能。
2024-08-22 17:12:21
1122
原创 VSCode远程调试CUDA代码-NVIDIA Nsight Visual Studio Code Edition
NVIDIA Nsight Visual Studio Code 版本(VSCE)是一个面向异构平台的应用程序开发环境,它将 CUDA GPU 开发引入到 Microsoft Visual Studio Code 中,支持 Linux 和 QNX 系统。NVIDIA Nsight VSCE 可以构建和调试 GPU 内核和原生 CPU 代码,并检查 GPU 和内存的状态。使用智能 CUDA 自动代码补全特性可以提高整体开发体验,在编写代码时可以节省时间和精力。
2024-08-20 17:16:01
2263
原创 CUDA编程之CUDA Sample-3_CUDA_Features-cudaTensorCoreGemm
CUDA sample中3_CUDA_Features里包含一些展示 CUDA 各种特性的sample。cudaTensorCoreGemm这个sample展示了如何使用 WMMA (Warp Matrix Multiply Accumulate) API 执行矩阵乘法。
2024-07-12 15:21:42
879
原创 CUDA编程之CUDA Sample-3_CUDA_Features-cdpSimpleQuicksort
CUDA sample中3_CUDA_Features里包含一些展示 CUDA 各种特性的sample,cdpSimpleQuicksort这个sample使用 CUDA 动态并行性(CDP)实现了快速排序。CDP (CUDA Dynamic Paralellism) 允许在运行在 GPU 上的线程中启动内核。动态并行性在 CUDA 5.0 及更高版本的设备上可用,这些设备的计算能力为 3.5 或更高(sm_35)。早期的 CUDA 程序必须遵循一种扁平、批量并行的编程模型。
2024-07-12 11:35:07
1953
原创 CUDA编程之CUDA Sample-2_Concepts_and_Techniques-histogram
CUDA samples 中的目录主要包含一些展示 CUDA 编程概念和技术的示例程序。这些示例主要涉及以下方面:assert()shfl__shfl()reductionscanhistogram主要展示如何在 GPU 上高效地实现直方图计算。直方图是一种常见的数据分析和可视化工具,用于描述数据集中数值分布的情况。这个示例程序主要包括以下几个方面:这个Sample演示了如何高效实现 64 个bin和 256 个bin的直方图计算。
2024-07-10 17:29:15
711
2
原创 CUDA编程之CUDA Sample-1_Utilities-deviceQueryDrv
CUDA Samples 中 1_Utilities 文件夹里包含了一些实用工具和小型示例程序,它们通常用于支持和演示其他 CUDA 示例程序的功能。deviceQueryDrv和类似,主要是是查询系统上安装的 CUDA 设备的属性。区别是使用了cuda runtime API, deviceQueryDrv使用了CUDA driverAPI。这个程序可以帮助开发人员了解系统上可用的 CUDA 设备的具体信息,以便编写更高效的 CUDA 应用程序。
2024-07-10 16:41:08
925
原创 CUDA编程之CUDA Sample-1_Utilities-deviceQuery
CUDA Samples 中 1_Utilities 文件夹里包含了一些实用工具和小型示例程序,它们通常用于支持和演示其他 CUDA 示例程序的功能。这个sample主要是是查询系统上安装的 CUDA 设备的属性。这个程序可以帮助开发人员了解系统上可用的 CUDA 设备的具体信息,以便编写更高效的 CUDA 应用程序。与其相似的Sample还有deviceQueryDrv,它的功能与一样,区别是使用了cuda runtime API, deviceQueryDrv使用了CUDA driverAPI。
2024-07-10 15:33:28
1054
原创 CUDA编程之CUDA Sample-1_Utilities-bandwidthTest
CUDA Samples 中 1_Utilities 文件夹里包含了一些实用工具和小型示例程序,它们通常用于支持和演示其他 CUDA 示例程序的功能。bandwidthTest这个sample是一个简单的测试程序,用于测量 GPU 的内存拷贝带宽以及 PCI-E 总线上的内存拷贝带宽。这个程序可以帮助开发人员了解 CUDA 应用程序在不同内存访问模式下的性能表现,从而优化应用程序的内存使用策略,提高整体性能。
2024-07-10 14:33:23
3047
原创 CUDA编程之CUDA Sample-3_CUDA_Features-cdpSimplePrint
CUDA sample中3_CUDA_Features里包含一些展示 CUDA 各种特性的sample,cdpSimplePrint这个sample使用 CUDA 动态并行性(CDP)实现的简单 printf。CDP (CUDA Dynamic Paralellism) 允许在运行在 GPU 上的线程中启动内核。CDP 仅在具有 3.5 或更高 SM 架构的 GPU 上可用。
2024-07-10 11:36:57
688
原创 CUDA编程之CUDA Sample-0_Introduction-clock
CUDA sample中0_Introduction里包含CUDA基础的sample,clock这个sample展示了如何使用 clock() 函数来准确地衡量kernel中一组block的性能。Blocks是并行执行且无序执行的。由于blocks之间没有同步机制, 我们会测量每个block的时钟。这个sample中有一些注释,注释中说明通过调整block的数量和线程的数量, 如何来保持GPU硬件的忙碌状态。
2024-06-14 17:36:17
914
原创 CUDA编程之CUDA Sample-0_Introduction-simplePrintf
MAX Macro定义一个MAX宏,用于返回两个数字中的最大值。testKernel() 函数这是一个CUDA内核函数,在GPU上并行执行。它接受一个整数参数val,并打印出当前线程的坐标和该值。main() 函数首先找到最合适的CUDA设备。获取该设备的属性,如名称、计算能力等。打印一条消息,表示即将调用printf()。配置CUDA内核的网格和块的维度:2x2的2D网格2x2x2的3D块启动内核,并传入值10。等待内核执行完成。最后返回成功退出状态。
2024-06-06 17:50:18
580
原创 CUDA编程之CUDA Sample-0_Introduction-vectorAdd
CUDA sample中0_Introduction里包含CUDA基础的sample,该代码执行两个输入向量A和B的逐元素向量加法运算,并将结果存储在输出向量C中。这是使用CUDA在GPU上执行并行计算的基本示例。
2024-06-06 17:35:46
372
原创 CUDA编程之CUDA Sample-0_Introduction-asyncAPI
包含库:代码包含了必要的系统和CUDA相关的头文件。内核函数:代码定义了一个CUDA内核函数,该内核函数接受一个整数数组g_data和一个增量值inc_value,并将数组中的每个元素增加给定的值。正确性检查:代码定义了一个函数,通过将data数组中的值与预期值进行比较来检查输出的正确性。主函数main()选择最佳可用的CUDA设备。为一个大小为1600万个元素的整数数组分配主机和设备内存。创建CUDA事件句柄以测量GPU的执行时间。设置内核启动配置,每个块512个线程,并计算适当的块数。
2024-06-06 17:09:18
1691
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人