CUDA
yanqs_whu
武汉电力职业技术学院
展开
-
CUDA:纹理金字塔
背景纹理内存是CUDA里非常好用的一个工具,能够极大的提高图片处理的速度。但是通常的纹理内存,只能处理当前尺度的数据,如果想要处理多尺度的信息,就会特别复杂。在本篇博客中,将主要针对纹理金字塔(Mipmap)进行实验,了解一下其用法。这里引用Unity中关于 Mipmap的示意图说明一下Mipmap是啥,其实就是一系列金字塔。另外,在阅读本篇博客时,应该对纹理参考和纹理对象有一定的了解,建议参考博主之前的文章。核心APIcudaMallocMipmappedArray ( cudaMipma原创 2021-01-11 10:48:55 · 794 阅读 · 0 评论 -
Ubuntu16.04:NVIDIA cuda10.0安装
背景之前曾说过使用sudo ubuntu-drivers devices来安装显卡驱动,这样可以保证基本上不出大问题。然而世界上的事情都是舍不得孩子套不住狼;使用这种默认方法安装的驱动版本太低,仅仅能安装cuda8.0,实在难以想象。所以我决定重新安装一次ubuntu系统,然后从头安装一次驱动,并按照cuda10。参考教材:https://www.cnblogs.com/fanminhao/...原创 2019-05-18 13:59:25 · 14547 阅读 · 3 评论 -
CUDA:纹理内存入门到精通--纹理对象
导读CUDA:纹理内存入门到精通–纹理内存概要 CUDA:纹理内存入门到精通–纹理参考背景纹理对象是CUDA针对纹理参考缺点而提出的升级版,其作用和纹理参考完全一致,但是使用方法更加灵活。纹理对象与纹理参考相比,CUDA对其进行各方面的升级,一方面是可以再代码中申请和销毁,另一方面则可以作为设备函数的参数进行传入;可以满足一些特殊的需求。纹理对象API使用纹理对象...原创 2018-05-25 11:13:46 · 6303 阅读 · 3 评论 -
CUDA:示例代码阅读convolutionSeparable
背景介绍共享内存共享内存是CUDA中的一种特殊内存,其对应的共享存储器驻留在多核流处理器上。因此与全局内存相比,共享内存具有更高的访问速度和更高的带宽。 共享内存的作用于是一个线程块,即一个线程块中的所有线程都可以访问同一块共享内存。基于这个特点,共享内存也通常用于在线程间进行通信。图像卷积图像卷积是图像处理中一个较为重要的操作。卷积的思路可以图示如下(即用一个卷积核和图...原创 2018-04-17 20:54:55 · 1134 阅读 · 0 评论 -
CUDA:纹理内存入门到精通--纹理参考
背景纹理内存是CUDA中一个非常有用的机制,2D纹理更适合用于图像处理。本博客总结一下在使用2D纹理内存遇到的问题和经验,并提供一些示例代码。参考http://blog.csdn.net/kelvin_yan/article/details/54019017 http://blog.csdn.net/shuzfan/article/details/77095270 http://b原创 2018-01-24 14:35:46 · 3703 阅读 · 0 评论 -
CUDA编程小技巧
参考资料http://blog.csdn.net/gggg_ggg/article/details/53320818 http://blog.csdn.net/augusdi/article/details/12649663本文记录在使用CUDA编程中所使用的一些小技巧,长期补充。1. 将小于等于0的值设置为0,保存大于0的值 原始代码if(a0){ a=0;}原创 2018-01-18 21:23:54 · 958 阅读 · 0 评论 -
CUDA:随机数
本文主要参考文档:http://docs.nvidia.com/cuda/curand/introduction.html#introduction 示例代码请见:https://github.com/Yannnnnnnnnnnn/cuda_random 首先声明一下,由于我完全不懂伪随机中的具体算法,也不懂准随机是什么。所以此处并不介绍这两种算法的区别,并且为了简单起见,我只介绍伪随机及其用法原创 2017-12-26 15:36:26 · 5817 阅读 · 8 评论 -
CUDA:无法解析的外部符号curandCreateGenerator/undefined reference to curandCreateGenerator
最近在学习CUDA中如何生成随机数时,用到了CUDA Toolkit Document中的一个示例代码: http://docs.nvidia.com/cuda/curand/host-api-overview.html#performance-notes2 然而在直接使用这个代码进行编译时,直接遇到了四个错误。错误error LNK2019: 无法解析的外部符号 curandCreateGen原创 2017-12-26 13:30:36 · 3624 阅读 · 2 评论 -
CUDA:纹理内存入门到精通--纹理内存概要
本博客参考资料来源如下: http://cuda-programming.blogspot.com/2013/02/texture-memory-in-cuda-what-is-texture.html http://blog.csdn.net/ai_vivi/article/details/42235787 http://blog.csdn.net/traceorigin/article/d原创 2017-12-23 19:42:30 · 3490 阅读 · 2 评论 -
CUDA:核函数未执行,错误检查
最近在使用CUDA时,遇到某次代码在执行时,直接跳过CUDA核函数。 又由于CUDA程序本身不是非常便于调试,所以在此时如果能知道程序为什么会报错,对进一步代码改正会有非常大的帮助。解决方案在核函数之后,添加一行代码。使用此函数,就会输出核函数非常正常执行的原因。 cudaError_t cudaStatus = cudaGetLastError(); if (cudaStatus !原创 2017-12-23 20:29:05 · 7613 阅读 · 0 评论 -
CUDA:性能测试
最近写了一个比较cpu和cuda各种优化的性能比较程序,得出了一下一些结论:CUDA比CPU快,理所当然CUDA中使用纹理内存和常量,可以加速图像大小对CUDA的速度影响不大,带宽才是ubuntu比windows快openMP也非常有用部分结论图如下: 具体代码,请前往github: https://github.com/Yannnnnnnnnnnn/cpu_cuda_compa原创 2017-12-04 19:08:46 · 7359 阅读 · 1 评论 -
GPU高性能编程CUDA实战-代码
《GPU高性能编程CUDA实战》是一本非常好的CUDA入门书,其提供的代码对初学者也非常有用。 但是由于该代码编写时间较为久远,且openGL的更新换代,使其使用较为困难。 本人经过整理,将其中的展示部分用openCV代替,并修复了其中部分bug,并提供CMakeLists.txt简化代码编译,现放出代码链接: https://github.com/Yannnnnnnnnnnn/cuda_by原创 2017-12-01 11:06:12 · 3927 阅读 · 2 评论 -
Ubuntu16.04: CUDA编程及CMakeLists.txt编写
在Windows下进行CUDA编程是一件非常容易的事(安装好VS,再安装CUDA Toolkit即可),但是在Ubuntu下则需要手动编写CMakeLists.txt文件,才能进行CUDA编程。 参考一些代码,我编写了一个CUDA编程的示例,代码如下: github:cuda_cmakelists原创 2017-11-14 10:32:52 · 1927 阅读 · 0 评论 -
CUDA之cudaMemcpyDeviceToHost失败
最近使用CUDA编写程序时,遇到一个比较奇怪的错误,即将内存从device拷贝到host失败。由于CUDA程序无法调试,所以为了寻找这个错误也是费劲心思,以下一共找到两个可能导致相关错误的原因:1.调用kernel函数的时候输出结果内存块不是在device端。有时候程序代码过长容易忘记调用kernel传入的参数必须是都是在device端的,为了防止使用错误的内存数据,可以在变量命名的时候加原创 2015-11-05 15:22:43 · 14947 阅读 · 5 评论 -
VS之CUDA模板卸载
有时候由于一些特殊原因,需要写在掉安装在电脑上的CUDA模板。其方法如下: 一、打开VS安装路径下:\Common7\IDE\Extensions 二、将此目录下的NVIDIA目录全部删掉即可 三、关闭VS,打开cmd控制台,在命令提示符下,定位到包含 \Common7\IDE目录,然后键入“devenv /setup” 四、重启即可发现NVIDIA模板被删除了参考:VS模板卸载原创 2016-07-14 10:22:02 · 1239 阅读 · 0 评论 -
OpenCV和Cuda结合编程
参考http://www.cnblogs.com/dwdxdy/p/3528711.html其中代码有一些错误,修正后将代码贴在此处,以便后续使用。#include "cuda_runtime.h"#include "device_launch_parameters.h"//opencv#include "opencv2/imgproc/imgproc.hpp"#include原创 2015-09-14 22:40:49 · 673 阅读 · 0 评论 -
双显卡电脑编写CUDA程序速度慢原因
最近使用了CUDA编写了一个处理大数据的照片,大小为5000*14489;我的N卡是GTX 980M。但是在处理时发现计算特别慢,到了运算比较多的地方直接就卡住了,后来检查设置发现要在Navida设置中:关闭 -- 线程优化 选项。经过此设置后,程序运行就没有问题了。原创 2015-10-03 12:53:09 · 2423 阅读 · 0 评论