![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CUDA
Felaim
每天进步一点点o(* ̄▽ ̄*)ブ
展开
-
CUDA: CUDNN_STATUS_SUCCESS (4 vs. 0)
问题:CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STATUS_INTERNAL_ERRORLZ最近在优化tensorflow的模转型,然后要转成caffemodel交给前端的同事进行移植,结果,在load参数时报了如下cudnn的错误,F0508 10:35:25.356586 2300 cudnn_conv_layer.cpp:53] Check failed: status == CUDNN_STATUS_SUCCESS (4 vs. 0) CUDNN_STAT原创 2020-05-08 18:46:55 · 854 阅读 · 0 评论 -
Nvidia Docker:CUDA_ERROR_SYSTEM_DRIVER_MISMATCH (大坑)
WARNING:tensorflow:From /usr/Downloads/keda/Documents/fanrongrong/docker/gaze_coorection_train_0426/train/ghost_module.py:61: The name tf.Session is deprecated. Please use tf.compat.v1.Session in ...原创 2020-04-26 19:31:54 · 3381 阅读 · 3 评论 -
CUDA: (十三) 手动分配内存和拷贝(NVIDIA 课程 Part five)
Advanced Content以下章节专为时间富余和有意深究的学习者而设,其中将介绍更多中级技术,其中会涉及部分手动内存管理,以及使用非默认流重叠执行核函数和内存拷贝。在了解以下所列的各项技术后,您可尝试运用这些技术进一步优化 n-body 模拟。Manual Memory Allocation and Copying尽管 cudaMallocManaged 和 cudaMemPref...原创 2020-02-29 15:49:51 · 2979 阅读 · 1 评论 -
CUDA: (十二) 异步流及使用 CUDA C/C++ 对加速应用程序开展可视化分析 (NVIDIA 课程 Part four)
异步流及使用 CUDA C/C++ 对加速应用程序开展可视化分析CUDA 工具包附带 NVIDIA Visual Profiler(或 nvvp),这是一款用于支持开发 CUDA 加速应用程序的强大 GUI 应用程序。nvvp 会生成加速应用程序的图解时间轴,其中包含有关 CUDA API 调用、核函数执行、内存活动和 CUDA 流使用情况的详细信息。此外,nvvp 还提供一套分析工具,开发人...原创 2020-02-29 15:04:34 · 4575 阅读 · 14 评论 -
CUDA: (十一) NVIDIA 2D Image And Signal Performance Primitives (NPP) 初探
NPP初探1. NPP是什么?为什么要用NPP?npp是图像和信号处理的GPU加速库,在我们安装cuda的时候,其实也安装了对应的一些library,只是以前LZ就是纯粹的调用cuda和cudnn来做深度学习,做训练和测试,也没有关注cuda的一些具体组成部分,自从参加完GTC CHINA以后,LZ居然真的要用到这些了,世界真是奇妙。原因很简单,因为要处理的图像数据都在GPU上,那么可以使用...原创 2020-02-27 19:30:52 · 3063 阅读 · 3 评论 -
Caffe: CMake源码编译(OpenCV4.2+CUDA)
周六周日在家倒腾了两天,总算稍微了解点pycaffe的一些接口和api设置了,但是针对不同层,还是有很多注意的细节的,所以也准备写个博客专门总结pycaffe的常见层参数设置,(LZ这个蠢啊,之前居然手写prototxt,一把辛酸泪,太傻了/(ㄒoㄒ)/~~)之前已经写过用Anaconda直接安装caffe,这样安装caffe不香嘛,为啥非得源码再来安装一次呢?1.项目里后端是用的tensor...原创 2020-02-23 22:29:59 · 1506 阅读 · 0 评论 -
CUDA:Nsight Eclipse Edition (用于CUDA编程的IDE)
最开始使用的是Kdevelop作为IDE,但是其实用起来并不是特别顺手,而且还是比较容易崩溃的,所以后期改用Clion进行C++的编程,但是Clion编程好像暂时还不支持cu代码高亮设置,所以LZ需要找一个对于cuda代码也能高亮的IDE。后来查了一圈,发现cuda在安装的是后自带了一个IDE,就是Nsight Eclipse Edition,直接在终端中启动就可以了。如何导入已有工程?...原创 2020-02-17 14:10:29 · 2746 阅读 · 0 评论 -
CUDA: (十) 使用 CUDA C/C++ 统一内存和 nvprof 管理加速应用程序内存 (NVIDIA 课程 Part three)
使用 CUDA C/C++ 统一内存和 nvprof 管理加速应用程序内存对于本实验和其他 CUDA 基础实验,我们强烈建议您遵循 CUDA 最佳实践指南,其中推荐一种称为 APOD 的设计周期:评估、并行化、优化和部署。简言之,APOD 规定一个迭代设计过程,开发人员能够在该过程中对其加速应用程序性能施以渐进式改进,并发布代码。随着开发人员的 CUDA 编程能力愈渐增强,他们已能在加速代码库中...原创 2020-02-16 13:32:57 · 3819 阅读 · 3 评论 -
CUDA: (八) 使用 CUDA C/C++ 加速计算的基础 (NVIDIA 课程 Part one)
这篇博客是NVIDIA付费的课程内容LZ自己进行了个格式排列和一些代码的梳理,感觉还是非常有用的一个课程,有兴趣的小伙伴可以自行去学习!LZ也作为整理,毕竟课程是有一定有效期的,过了就没法使用(≧▽≦)/啦啦啦!C/C++加速计算的基础借助您现在掌握的技术和工具,您离准备好开始加速自己的实际应用程序近在咫尺了。本节将为您提供以下详细信息:a. 设置自己的CUDA环境b. 如何最好地在开...原创 2020-02-16 10:32:39 · 3577 阅读 · 1 评论 -
CUDA: (九) 使用 CUDA C/C++ 加速应用程序 (NVIDIA 课程 Part two)
C/C++加速计算的基础借助您现在掌握的技术和工具,您离准备好开始加速自己的实际应用程序近在咫尺了。本节将为您提供以下详细信息:a. 设置自己的CUDA环境b. 如何最好地在开发加速应用程序方面继续学习c. 解决另外一个供练习用的问题d. 其它有用的资源一、设置一个拥有CUDA的环境为您自己的工作设置CUDA环境的两种最简单的方法是:1.通过云服务商2.在您自己的装有NVIDIA...原创 2020-02-14 17:51:26 · 8077 阅读 · 3 评论 -
CUDA: (七) Histogram Calculation(GPU vs CPU), Atomic Operations
Atomic Operation什么叫Atomic operation(原子操作)呢?或者说在什么情况下我们需要进行Atomic operation呢?考虑一种情况,我们会经常出现这样一个问题,例如有大量的线程尝试修改少量内存,或者当我们尝试执行读取-修改-写入操作时,将会产生更多的问题,例如加一操作,当多个线程在同一内存位置上执行此操作时,可能会给出错误的输出。举个实际例子:假设一个...原创 2020-02-05 18:28:30 · 751 阅读 · 0 评论 -
CUDA: (六) 时间计算、CUDA stream(CUDA 流)
CUDA时间评估LZ之前都是使用CPU timer来评估CUDA代码的性能的,但是这样做时候没有办法给出精确答案的,除了其他因素外,最常见的时间计算误差包括线程延迟开销和操作系统调度的开销。同时,使用GPU测量的时间还取决于高精度Cpu计时器的可用性。在很多情况下,主机在GPU内核运行时执行异步计算,因此,因此为了测量GPU内核消耗的时间,CUDA提供了对应于event的API。CUDA ev...原创 2020-02-04 18:05:24 · 2362 阅读 · 1 评论 -
CUDA:(五)Nvidia Visual Profiler (Nvidia自带内核执行代码分析软件)
我们都知道CUDA提供了一种提供了一种提高并行计算应用性能的有效方法,但是有时候会出现的一个问题是及时我们使用了CUDA,即使用了代码并行操作,但是代码的时间消耗并没有有效减少,还有可能因为代码书写的原因导致运行时间更长,这是有可能的。在这种情况下,我们就需要可视化代码哪一部分耗时最长,NVIDIA在安装时,也附带了标准的CUDA安装,该工具称为Nvidia Visual Profiler,可以...原创 2020-02-03 17:59:12 · 5887 阅读 · 1 评论 -
CUDA: (四) Memory Architecture
和CPU类似,GPU是有各种不同的memory spaces,每种memory都有各自的特性,使用起来速度也不同,并且应用的范围也不同。这些memory按照等级会分成各种chunks,相信用过深度学习的小伙伴对chunks这个应该不陌生吧,如果网络结构比较大,batchsize设置也很大,超过了GPU的memory,经常汇报关于chunks的错误,最后加上out of memory的报错。GPU...原创 2020-01-31 12:44:19 · 726 阅读 · 0 评论 -
CUDA:(三)threadIdx, blockIdx, blockDim, gridDim,warpsize的理解
小伙伴们看了是不是有点晕呢,其实LZ现在对于CUDA理解也是很浅显,算是看书的一个笔记吧首先threadIdx, blockIdx, blockDim, gridDim,warpsize这五个变量都是CUDA的内建变量gridDim: 指定grid维度,类型为dim3blockDIm: 指定block维度,类型为dim3blockIdx: 指定grid内block索引号,类型为uint3...原创 2020-01-30 22:24:55 · 4834 阅读 · 5 评论 -
CUDA:(二)对于Block, thread的简单理解
因为新型冠状病毒的影响,公司也通知延长假期并且在家办公一周,虽然今天还没有到,但是LZ也已经大门不出二门不迈了,生活还得继续不是嘛,但是基于这次疫情,LZ也做了点思考,很浅薄,但是希望之后自己能够做到。1.凡事都要要最坏的打算和Plan B方案。虽然面对疫情,应该要充分相信前线的医护人员能够控制好疫情,但是作为后方的群众,也要做好囤聚粮食,为什么?减少去超市等人口密集的场所,以后家中养成习惯,至...原创 2020-01-28 16:34:01 · 1035 阅读 · 0 评论 -
CUDA:(一) 基本设备管理函数、向量相加
LZ之前看过一点点的GPU的加速代码,后来发现要想写好cuda代码对硬件的理解,内存的理解,并行计算等要求还是很高的,然后就很怂的放弃了,没有继续下去,而且实验室基本上都是做CV的,很少有同学做HPC,所以对这方面属于真小白。直到前阵子,去GTC CHINA,也还是小白,CUDA也就用过最基础的cudaMalloc和cudaMemcpy这两个常规操作,直到后续需要将整个算法移植到gpu上,才不得...原创 2020-01-19 20:13:17 · 1056 阅读 · 1 评论 -
Tensorflow: 支持的数据类型和Tensor的一些接口(C++)
相信很多小伙伴对tensorflow的python接口使用都很熟悉了,前期,LZ已经将训练的模型通过tensorflow 的C++接口移植成功,现在出现的问题是tensorflow的session run只能从CPU上进行inference,并且inference后得到的结果也在CPU上,那么正常数据在CPU上,当然是没有问题的,重点是LZ获取的是GPU的buffer,如果使用cuda的接口进行m...原创 2020-01-19 13:53:09 · 1751 阅读 · 0 评论