草庐IT

CUDA_CODE_COMPILE

全部标签

c++ - Visual Studio Code c++11 扩展警告

我正在学习C++,并且正在使用适用于Mac的VisualStudio代码。我使用CodeRunner来运行我的程序。我的问题是,当我使用c++11中的某些东西(如“auto”)进行变量声明时,visualstudio代码会给我这样的警告,但如果我尝试在Xcode或Eclipse上运行它,它不会:warning:'auto'typespecifierisaC++11extension[-Wc++11-extensions]for(autoy:nstrVec)如果有必要,这是程序:#include#include#include#include#include#includeintmain

c++ - 我将如何构建 Box2D 以在 Code::Blocks/Mingw32(Windows) 中工作

嘿,标题几乎说明了一切。我一直在尝试来自互联网资源的不同方法,但每当我尝试出错时……这就是我得到的地方Box2D在cMake,我在构建它时遇到了一堆错误(我正在执行readme.txt中的步骤,但不幸的是,它们适用于VisualC++...)所以我很想设置它,因为我猜是一个库(.lib或.a)并在我的项目中使用它(我的friend将他的库传给我,当我加载它并尝试#includeingthebox2Dheaders,他们根本没有阅读(我得到了一个未定义错误的列表)我相信他的box2d是为linux/unix制作的所以我认为这就是原因......)如果有人能帮忙提供一些步骤就好了。感谢阅读

c++ - 在 CUDA 中混合自定义内存管理和 Thrust

在我的项目中,我实现了自定义内存分配器以避免不必要地调用cudaMalloc一旦应用程序“预热”。此外,我使用自定义内核进行基本数组填充、数组之间的算术运算等,并希望通过使用Thrust来简化我的代码。并摆脱这些内核。设备上的每个数组都是通过原始指针创建和访问的(目前),我想使用device_vector和Thrust这些对象上的s方法,但我发现自己在原始指针和device_ptr之间转换一直以来,我的代码都有些困惑。我相当模糊的问题:您将/如何组织自定义内存管理的使用,Thrusts数组方法和以最易读的方式调用自定义内核? 最佳答案

OpenCV+Cuda+Cmake+VStudio配置踩坑记录

OpenCV+Cuda+Cmake+VStudio配置记录前后配这玩意三次,一直挺头疼,最近项目原因不得不又配了一遍,遂下定决心写一下坑点前置安装CMake编译Opencv(VS2022)这步请提前确定好cuda和cudnn的版本对应,cuda版本和电脑环境的版本兼容,cuda和vs的版本对应(大坑,比如cuda11.3不支持vs2022!)查看系统支持的cuda版本:输入win+r,输入cmd,打开命令提示符窗口,输入:nvidia-smi注意这里显示的是系统支持的最高版本,不是当前版本!CUDA与VisualStudio版本之间的对应关系如下:cuda12.1及以上才支持VS2022cud

c++ - 从常规 C++ 代码调用 CUDA 代码——整理出 extern "C"

我正在尝试从单独编译的C++文件调用CUDA(主机)函数:sample.cppC++文件:extern"C"voidcuda_function(inta,intb);intmain(){//statementscuda_function(23,34);//statements}cuda.cu文件:#include__global__voidkernel(inta,intb){//statements}voidcuda_function(inta,intb){//cuda_function}构建命令:g++-csample.cppnvcc-ccuda.cunvcc-osamplesamp

详解‘CUDA driver version is insufficient for CUDA runtime version

目录详解'CUDAdriverversionisinsufficientforCUDAruntimeversion'背景解决方法步骤1:查看CUDA运行时要求的驱动程序版本步骤2:检查当前CUDA驱动程序版本步骤3:更新CUDA驱动程序步骤4:验证更新结果步骤5:重新运行CUDA应用程序结论详解'CUDAdriverversionisinsufficientforCUDAruntimeversion'当你在使用CUDA运行时时,有时可能会遇到这样的错误消息:'CUDAdriverversionisinsufficientforCUDAruntimeversion'。这个错误消息表示CUDA运行

c++ - 分配给右值 : why does this compile?

在下面的例子中:classA{private:doublecontent;public:A():content(0){}Aoperator+(constA&other){content+=other.content;return*this;}voidoperator=(constA&other){content=other.content;}};A是double的简单包装器,+和=运算符已被重载。在以下使用中:intmain(intargc,char*argv[]){Aa,b,c;(a+b)=c;//Whyisthisoperationlegal?}为什么(a+b)=c可以编译?我想知

c++ - 当运行的线程多于内核时,CUDA 性能会提高

为什么每个block运行超过32个线程时性能会提高?我的显卡有480个CUDA内核(15MS*32SP)。 最佳答案 每个SM有1-4个warp调度器(Tesla=1,Fermi=2,Kepler=4)。每个warp调度程序负责执行分配给SM的warp的子集。每个warp调度程序维护一个符合条件的warp列表。如果warp可以在下一个周期发出指令,则它是合格的。如果warp在数据依赖性上停止,等待获取和指令,或者下一条指令的执行单元正忙,则warp不合格。在每个周期中,每个warp调度程序将从符合条件的warp列表中选择一个warp

c++ - 您使用什么库在 CUDA 上进行矩阵计算?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。您使用什么库在CUDA上进行矩阵计算?或者有没有?好像每个人都是自己写的。对于通常的处理器,我使用Eigen.GPU呢?

c++ - 如何使用 CUDA 生成随机排列

我可以使用哪些并行算法从给定的集合中生成随机排列?特别是适合CUDA的论文的建议或链接会很有帮助。这的顺序版本将是Fisher-Yates洗牌。例子:设S={1,2,...,7}为源索引集。目标是并行生成n个随机排列。n个排列中的每一个都恰好包含每个源索引一次,例如{7,6,...,1}。 最佳答案 Fisher-Yatesshuffle可以并行化。例如,4个并发worker只需要3次迭代来洗牌8个元素的vector。在第一次迭代中,它们交换01、23、45、67;第二次迭代02、13、45、67;以及最后一次迭代04、15、26、