CUDA
cuda学习贴
混元太极马保国
莽村车神李有田,医疗行业打工仔
展开
-
cuda-memcheck/compute-sanitizer工具使用
cuda-memcheck是CUDA工具包中的一个功能正确性检查套件。它包含多个可以执行不同类型检查的工具。这些工具可以精确地检测和归因CUDA应用程序中的越界和未对齐的内存访问错误。具体包括 memcheck、 racecheck、initcheck、 synccheck 共 4 个工具原创 2024-02-17 15:30:46 · 1094 阅读 · 0 评论 -
Cuda编程注意小事项
编译出来的可执行文件将包含4个二进制版本,分别对应开普勒架构(不包含比较老的3.0和3.2的计算能力)、麦克斯韦架构、帕斯卡架构和伏特架构。另外,需要注意的是,过多地指定计算能力,会增加编译时间和可执行文件的大小。在将源代码编译为PTX代码时,需要用选项-arch=compute_XY指定—个虚拟架构的计算能力,用以确定代码中能够使用的CUDA功能。在将PTX代码编译为cubin代码时,需要用选项-code=sm_ZW指定一个真实架构的计算能力,用以确定可执行文件能够使用的GPU。这些限制是必须牢记的。原创 2024-02-06 21:00:00 · 1166 阅读 · 0 评论 -
Cuda三维纹理的使用
cudaExtent cudaChannelFormatDesc cudaMalloc3DArray cudaMemcpy3DParms cudaMemcpy3D cudaBindTextureToArray原创 2023-09-28 01:45:55 · 366 阅读 · 0 评论 -
CUDA常用函数
cudaDeviceSynchronize、cudaDeviceReset原创 2023-07-30 21:11:35 · 709 阅读 · 0 评论 -
cudaMemGetInfo获取的显存占用与实际不符问题
在windows或者wsl下开发cuda程序时使用cudaMemGetInfo查询显存占用时会与nvidia-smi、gpu-z等查询的区别很大。并且不管实际显存被占用了多少,使用cudaMemGetInfo每次查询都是一个固定的显存占用值,这种情况和内存虚拟化很像,每个进程都有自己的虚拟空间。而在Linux服务器下使用cudaMemGetInfo查询时则为实际占用的显存大小。原创 2023-02-05 22:30:36 · 882 阅读 · 0 评论 -
Cmake构建Cuda库
Cmake构建Cuda静态库,此方法可以自动代码补全原创 2023-01-18 20:46:56 · 611 阅读 · 0 评论 -
无法解析的外部符号: __cudaRegisterLinkedBinary_
cmake中加入 set_target_properties(${PROJECT_NAME} PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON)问题:cmake cuda动态或静态库后,可执行程序链接时报 无法解析的外部符号: __cudaRegisterLinkedBinary_原创 2022-12-18 19:04:27 · 953 阅读 · 0 评论 -
CUDA文件中无法打开源文件<stdio.h>
VS2017创建cuda工程后无法打开stdio.h等c语言头文件原创 2022-07-13 23:47:15 · 3873 阅读 · 5 评论 -
#error -- unsupported Microsoft Visual Studio version Only the versions 2012, 2013, 2015 and 2017
#error -- unsupported GNU version! gcc versions later than 7 are not supported!原创 2022-05-17 14:15:10 · 981 阅读 · 0 评论 -
cudaMalloc使用void**的原因
1、给指针申请内存如果想通过调用函数的方式给指针传参就需要用到二级指针的方式,和写swap函数使用指针传参是一个道理。2、void**可以是各种类型 因为cudaMalloc不像malloc可以直接返回void*,它需要返回cuda的错误类型cudaError_t,所以直接返回给指针就可以了。当然你可以在传参的时候写成任意类型。...原创 2021-12-19 23:59:55 · 377 阅读 · 0 评论 -
GPU高性能编程CUDA实战书中的HANDLE_ERROR( )未定义
添加如下代码static void HandleError( cudaError_t err, const char *file, int line ) { if (err != cudaSuccess) { printf( "%s in %s at line %d\n", cudaGetErrorString( err ), file, line...原创 2021-12-19 18:21:43 · 784 阅读 · 0 评论