logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

cudaMalloc使用void**的原因

1、给指针申请内存如果想通过调用函数的方式给指针传参就需要用到二级指针的方式,和写swap函数使用指针传参是一个道理。2、void**可以是各种类型因为cudaMalloc不像malloc可以直接返回void*,它需要返回cuda的错误类型cudaError_t,所以直接返回给指针就可以了。当然你可以在传参的时候写成任意类型。...

cuda-memcheck/compute-sanitizer工具使用

cuda-memcheck是CUDA工具包中的一个功能正确性检查套件。它包含多个可以执行不同类型检查的工具。这些工具可以精确地检测和归因CUDA应用程序中的越界和未对齐的内存访问错误。具体包括 memcheck、 racecheck、initcheck、 synccheck 共 4 个工具

#c++#图形渲染
c/c++运行时库:MT、MTd、MD、MDd以及libcmt msvcrt等内容

文章转载自:你所不知道的C和C++运行库_ithzhang的博客-CSDN博客_c/c++运行库作者写的已经很清楚了,这个文章很透彻。在各个版本的编译器中,我们可以通过配置选项来设置程序使用的C和C++运行时库的类型。如下图(其他版本编译器大同小异):MT选项:链接LIB版的C和C++运行库。在链接时就会在将C和C++运行时库集成到程序中成为程序中的代码,程序体积会变大。MTd选项:LIB的调试版

#c++#开发语言
Marching Cubes算法在医学三维重建中的应用

概述  之前的博文已经完整的介绍了三维图像数据和三角形网格数据。在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像。比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征人体内部组织器官形状的一个三维图像。其中的感兴趣的组织器官通过体素的颜色和背景加以区别。如下图的人体足骨扫描图像。医生通过观察这样的图像可以分析病人足骨的特征,从而对症下药。  这类应用在计算机领域

文章图片
c/c++运行时库:MT、MTd、MD、MDd以及libcmt msvcrt等内容

文章转载自:你所不知道的C和C++运行库_ithzhang的博客-CSDN博客_c/c++运行库作者写的已经很清楚了,这个文章很透彻。在各个版本的编译器中,我们可以通过配置选项来设置程序使用的C和C++运行时库的类型。如下图(其他版本编译器大同小异):MT选项:链接LIB版的C和C++运行库。在链接时就会在将C和C++运行时库集成到程序中成为程序中的代码,程序体积会变大。MTd选项:LIB的调试版

#c++#开发语言
无法解析的外部符号: __cudaRegisterLinkedBinary_

cmake中加入 set_target_properties(${PROJECT_NAME} PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON)问题:cmake cuda动态或静态库后,可执行程序链接时报 无法解析的外部符号: __cudaRegisterLinkedBinary_

#c++
cudaMemGetInfo获取的显存占用与实际不符问题

在windows或者wsl下开发cuda程序时使用cudaMemGetInfo查询显存占用时会与nvidia-smi、gpu-z等查询的区别很大。并且不管实际显存被占用了多少,使用cudaMemGetInfo每次查询都是一个固定的显存占用值,这种情况和内存虚拟化很像,每个进程都有自己的虚拟空间。而在Linux服务器下使用cudaMemGetInfo查询时则为实际占用的显存大小。

#c++
VTK实现多个体数据映射到一起进行渲染

背景:多个面数据(例如obj数据等)使用同一个Renderer通过增加多个Actor的方式是可以映射到一起的,但是如果透明度不是1的话深度层次会发生错乱。可以使用Renderer的UseDepthPeelingOn进行深度剥离,来使深度关系是正确的。但是体数据通过这种方式是达不到深度关系正确的,类似于这种,是按照加入actor的顺序来排序的。解决方案:使用vtkMultiVolume来达到多个体数

文章图片
#c++
到底了