草庐IT

cuda-c-programming-guide

全部标签

c++ - OpenCL 中的暴力破解(来自 CUDA 的端口)不起作用

*代码和问题的另一个更新*刚开始学习openCL大约1周左右,我尝试移植一个关于暴力破解MD5哈希以从中获取实际字符串的CUDA程序。我使用2个文件:kernel.cl和main.cpp。//thisiskernel.cl{...*definingsomemd5variables*...}voidIncrementBruteGPU(unsignedchar*ourBrute,unsignedintcharSetLen,unsignedintbruteLength,unsignedintincrementBy){inti=0;while(incrementBy>0&&i这是主要的://j

c++ - OpenCV Cuda 不是有类似于 findContours 的函数吗?

有几个OpenCVCPU函数具有直接的CUDA对应项,例如cv::cvtColor和cv::cuda::cvtColor。但我没有发现cv::findContoursCPU的直接或间接(GPU)Cuda对应项。OpenCVCuda没有类似于findContours的功能吗?或者findContours是否同时适用于cv::Mat和cv::cuda::GpuMat? 最佳答案 不幸的是,不是。甚至在最新的OpenCV3.2.0版本中也没有。但是他们有这个更新,如下所示:https://github.com/opencv/opencv/

c++ - 代码解析不适用于 CUDA、Clion 和 CMake

我有一个分为模块的项目,这是一个虚拟示例:根CMakeLists.txt模块工具CMakeLists.txt来源util_file.cpp库达CMakeLists.txt来源cuda_file.cu如果我使用CLion编辑cuda_file.cu,CLion将无法解析所有符号(甚至包括标准库中的符号)。所有代码完成/创建功能当然都消失了(除其他外)。问题似乎是,每当您创建仅包含CUDA文件的库或可执行文件时,Clion就会变得愚蠢并且不再解析或解析任何内容。我发现了两种解决方法,但它们使用起来不友好或“干净”:将一个空的.cpp文件添加到目录并将其添加到add_library()CMa

c++ - 更好地处理 boost::program_options 中丢失/错误的键

有没有办法知道当像下面这样的调用失败时涉及到哪个键?boost::program_options::variables_mapvm;...intfoo_bar=vm["some_key"].as();如果键从映射中丢失,或者不能转换为int,我会得到一个相当无用的bad_any_cast,并且我不知道以下任何内容:涉及的关键储值,或者即使它存在。涉及的类型我找不到任何不涉及修改boostheader或将对上述内容的每次调用包装在try..catchblock中的解决方案。我认为这是一个常见问题,所以也许其他人知道更好的方法。 最佳答案

c++ - 简单的 MPI_Send 和 Recv 使用 CUDA 给出段错误(11)和无效权限(2)

我正在尝试对格子玻尔兹曼建模的CUDA代码进行MPI,但在使用MPI_Send和MPI_Recv函数时遇到了令人沮丧的问题。我已经验证我有CUDA感知MPI和一些简单的设备缓冲区到设备缓冲区MPI发送/接收代码,所以我可以在GPU设备内存之间发送和接收数组,而无需通过CPU/主机。我的代码是针对3D晶格的,它在各个节点之间沿z方向划分,节点之间有光晕,以确保流体可以在这些划分之间流动。光环位于GPU上。下面的代码是一个简化和编译给出了与我的主要代码相同的错误。在这里,Rank0节点上的GPUHalo是MPI_Send()到rank1节点,它是MPI_Recv()。我的问题目前看起来很简

c++ - CUDA 7.5 实验性 __host__ __device__ lambda

我玩了一下experimentaldevicelambdas在CUDA7.5中引入并在此blogpostbyMarkHarris中提升.对于下面的示例,我删除了很多不需要显示我的问题的东西(我的实际实现看起来更好......)。我尝试编写一个foreach函数,它根据模板参数对设备上的vector(每个元素1个线程)或主机(串行)进行操作。使用这个foreach函数,我可以轻松实现BLAS函数。例如,我使用为vector的每个分量分配一个标量(我在最后附上完整的代码):templatevoidassignScalar(size_tsize,double*vector,doublea){

c++ - boost program_options 接受最后一个标志后的所有值

有没有办法收集boost::program_options指定参数后的所有值?不过,我需要注意两个注意事项,我需要接受无法识别的参数,并且我需要接受可能包含破折号的值。我试过使用command_line_parser与parse_command_line进行比较,我可以得到无法识别的值或包含破折号的值,但不能同时得到两者。例子:./myprogIgnore1Ignore2--Accept1--AlsoAccept2--AcceptAll12-34我并不关心验证--AcceptAll是否是最后传递的标志;我只是在寻找为该标志之后的所有内容返回字符串vector的逻辑。

c++ - C++ eclipse 调试器出现以下错误。 'Launching program name' 遇到...启动命令 : gdb --version 时出错

我一直在解决调试器问题,但现在它变得太烦人了。我正在处理更复杂的程序,如果我不能调试我的程序,我就无处可去。有没有其他人能够在eclipse中解决这个问题?它适用于java,但不适用于我来自minGW的C++插件C++eclipse调试器出现以下错误。“启动程序名称”遇到问题。启动命令时出错:gdb--version 最佳答案 假设您使用的是Windows并安装了MinGW,您只需在MinGWbin文件夹中找到gdb可执行文件。这可以在Eclipse的“调试器”配置中的“主”选项卡上完成:

C++ 多态性和派生类类型 - "ugly programming"带指针类型转换

首先,我不确定如何用一行来准确描述我正在做的事情...因此标题有点模糊。我能给出的问题的最简短描述是“我有一个函数,它应该能够将许多可能类型的类中的任何一种作为参数,并且这些类都是从基类派生的”.具体来说,我有2个类别的类,它们都实现了不同类型的方法,它们相似但不完全相同。也许我只举个例子会更好?你会看到我用指针类型转换做了一些有点奇怪的事情。我不认为这些是好的编程习惯。它们至少有点奇怪,我想知道是否有更好的替代方法。好的,下面是我对简化示例的尝试:classdevice{//Nothinghere-abstractbaseclass}classinputDevice:device//

c++ - 编译 CUDA 示例会出现构建错误

我正在运行Windows764位和VisualStudio2008。我安装了CUDA驱动程序和SDK。SDK附带了很多示例,包括已编译的可执行文件和源代码。编译后的可执行文件运行得很好。当我打开vc90解决方案并在Win32配置中构建时,我收到此错误:Error1fatalerrorLNK1181:cannotopeninputfile'.\Release\bandwidthTest.cu.obj'bandwidthTestbandwidthTest构建日志:1>------Buildstarted:Project:bandwidthTest,Configuration:Release