草庐IT

TensorFlow-CUDA-cuDNN-GPU

全部标签

c++ - CUDA 内核 "Only a single pack parameter is allowed"解决方法?

关于可变全局函数模板的CUDA7标准指出"onlyasinglepackparameterisallowed."有没有优雅的解决方法?我希望能够做类似的事情:templatevoidRecursiveFunct(){}templatevoidRecursiveFunct(Tt,Args...args){t.templatecall();RecursiveFunct(args...);}我想我可以在传递它们之前将我的整数包包装成某种东西,但是否可以通过一种对该代码的调用者透明的方式来做到这一点? 最佳答案 不确定是否理解您的确切限制,

c++ - CUDA - memcpy2d - 音调错误

我刚开始CUDA编程,并试图执行下面显示的代码。这个想法是将二维数组复制到设备,计算所有元素的总和,然后检索总和(我知道这个算法不是并行化的。事实上,它正在做更多的工作,然后是必要的。然而,这只是为了作为memcopy的练习)。#include#include#include#include#defineheight50#definewidth50usingnamespacestd;//Devicecode__global__voidkernel(float*devPtr,intpitch,int*sum){inttempsum=0;for(intr=0;r>>(devPtr,pitc

c++ - 将 pthreads 与 CUDA 结合使用 - 设计问题

我正在编写一些需要一些磁盘I/O的代码,并调用我编写的库来执行一些计算和GPU工作,然后调用更多磁盘I/O将结果写回文件。我想将其创建为多线程代码,因为文件非常大。我希望能够读取文件的一部分,将其发送到GPU库,然后将一部分写回文件。涉及的磁盘I/O非常大(如10GB),并且在GPU上的计算速度相当快。我的问题更像是一个设计问题。我应该使用单独的线程来预加载进入GPU库的数据,并且只让主线程实际执行对GPU库的调用,然后将结果数据发送到其他线程以写回磁盘,或者我是否应该继续让所有单独的线程各自完成自己的工作-获取一大块数据,在GPU上执行,然后写入磁盘,然后获取下一block数据?我正

c++ - 在 CUDA 上乘以两个 float 变量

我有一个非常有趣的问题,但我花了3个小时才解决它,但我只是想不通发生了什么以及为什么它不起作用。我试过谷歌它,但没有结果。我正在CUDA上编写程序。我有一段非常简单的代码:__global__voidcalcErrorOutputLayer_kernel(*arguments...*){intidx=blockIdx.x*blockDim.x+threadIdx.x;floatgradient;floatderivation;derivation=pow((2/(pow(euler,neuron_device[startIndex+idx].outputValue)+pow(euler

Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow)

项目介绍TensorFlow2.X搭建卷积神经网络(CNN),实现交通标志识别。搭建的卷积神经网络是类似VGG的结构(卷积层与池化层反复堆叠,然后经过全连接层,最后用softmax映射为每个类别的概率,概率最大的即为识别结果)。其他项目水果蔬菜识别:基于卷积神经网络的水果识别项目安装conda和pycharm若已经安装好了请忽略。在评论区获取:安装包的分享链接,包含Pycharm、Anaconda、Miniconda、TeamViewer(远程协助)、FormatFactory(格式工厂)。安装aconda可以自行选择Anaconda或者Miniconda两者安装方法和法是完全一样的。但是强烈

c++ - 是否有与 Thrust(GPU 的并行 STL)类似的库,但用于 GPGPU AMD Radeon?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有类似Thrust的库(用于GPU的并行STL,可以使用OpenMP/TBB,C++CUDA),但用于GPGPUAMDRadeon(例如使用OpenCL而不是使用CUDA)?所需的标准STL算法(排序、合并、删除/复制、In/Exc

c++ - CUB (CUDA UnBound) 相当于 thrust::gather

由于Thrust库存在一些性能问题(有关详细信息,请参阅thispage),我计划重构一个CUDA应用程序以使用CUB而不是Thrust。具体来说,就是替换thrust::sort_by_key和thrust::inclusive_scan调用)。在我的应用程序的特定点上,我需要按键对3个数组进行排序。这就是我用推力做到这一点的方式:thrust::sort_by_key(key_iter,key_iter+numKeys,indices);thrust::gather_wrapper(indices,indices+numKeys,thrust::make_zip_iterator(

通过TensorFlow从10个数字预测2个尺寸输出

我想从10个数字中预测一个数字我想做的就是预测t从mat每个mat[i]是corspondont[i]当然,我在MAT和T中有更多的5行,现在简化了问题。我在下面写了这样的代码。#Thereistargetdata`t`andtraindata`mat[0]`,`mat[1]`,`mat[2]`....t=[0,1,0,1,0]#answer2dimensionlimit=10#numberofdegreesmat=[[2,-2,3,-4,2,2,3,5,3,6],#10degreesnumberofmat[0]leadst[0][1,3,-3,2,2,5,1,3,2,3],#10degree

TensorFlow对象检测API怪异行为

我正在玩Tensorflow的全新对象检测API并决定在其他一些公开可用的数据集上进行训练。我碰巧偶然发现了这个杂货数据集由超市架子上各种品牌的香烟盒的图像以及一个文本文件组成,该文本文件列出了每个图像中每个香烟盒的边界框。数据集中已将10个主要品牌标记为标签,所有其他品牌都属于第11个“其他”类别。我跟随他们教程并设法在此数据集上训练模型。由于处理能力的局限性,我仅使用了数据集的三分之一,并进行了70:30拆分进行培训和测试数据。我使用了更快的_rcnn_resnet101型号。我的配置文件中的所有参数均与TF提供的默认参数相同。16491年的全球步骤之后,我在某些图像上测试了该模型,但我对

c++ - 没有弃用功能的 CUDA + OpenGL Interop

我之前已经能够通过以下方式在CUDA中填充纹理以用于OpenGL:创建并初始化GL纹理(gl::GenTextures()等)创建GL像素缓冲区对象向CUDA注册PBO在更新/渲染循环中:cudaGraphicsMapResource()与PBO启动内核以更新PBOcudaGraphicsUnmapResource()来自CUDA的PBO加载GL程序,绑定(bind)纹理,正常渲染重复清洗、漂洗。但是,我想知道PBO是否仍然是从内核编写纹理的最佳方式。我看过类似thisone的文章(updatedforv5here)似乎根本没有使用PBO。我看到了一些对cudaTextureObjec