[CUDA笔记]
桑来93
time will tell
展开
-
CUDA | ZeroCopy
零拷贝内存: 通过cudaHostAlloc函数+cudaHostAllocMapped参数, 而固定内存 cudaHostAlloc函数+cudaHostAllocDefault参数。 通过cudaHostAllocMapped分配的主机内存也是固定的,它与通过cudaHostAllocDefault分配的固定内存有着相同 的属性。 但...转载 2018-06-18 16:26:44 · 661 阅读 · 0 评论 -
CUDA图像处理 | Sobel算子边缘提取
CUDA图像处理 | Sobel算子边缘提取CUDA数组与纹理操作CUDA数组与设备内存从相同的内存池中分配,但前者拥有有一个细节不明的布局:为2D和3D局部性做了优化。CUDA数组不消耗CUDA地址空间CUDA可以只在设备内存中驻留,GPU在总线中传输数据时在这两种形式之间转换。纹理存储器是一种只读存储器。kernel 函数通过纹理参考系从纹理内存中读取数据(Texture...原创 2018-09-11 09:41:02 · 2233 阅读 · 0 评论 -
NIVIDIA 硬解码学习3
NIVIDIA 硬解码学习3 今天主要学习的 Demo 是AppDecGL This sample application illustrates the decoding of media file and display of decoded framesin a window. This is done by CUDA interop with OpenGL. C...原创 2018-09-14 23:00:55 · 1420 阅读 · 0 评论 -
CUDA C Programming Guide | Introduction
1.1 从图形处理到并行计算GPU:高并行,多线程,多核心,强大计算能力和极高的内存带宽。CPU和GPU在浮点计算能力的差异在于GPU是计算密集型的,高度并行的,因此更多的晶体管被投入到数据处理而非数据缓存和流控制。应用:In 3D rendering【渲染】, large sets of pixels and vertices are mapped to parallel threa...原创 2018-09-22 10:50:56 · 300 阅读 · 0 评论 -
CUDA C Programming Guide | Programming Model
Kernels 核函数A kernel is defined using the global declaration specifier 【声明说明符】the number of CUDA threads that execute that kernel for a given kernel call is specified using a new <<<…>&g...原创 2018-09-22 11:30:34 · 492 阅读 · 0 评论 -
CUDA C Programming Guide | Programming Interface
第三章 Programming Interface【编程接口】3.1 Compilation with NVCC 【编译】// 略3.2 CUDA C RuntimeThe runtime 实现于cudart library静态库 cudart.lib 动态库 cudart.dllDevice Memory gives an overview of the runtime fun...原创 2018-09-23 09:50:06 · 438 阅读 · 0 评论 -
cuda shared memory 静态分配和动态分配
静态分配加上前缀 shared__shared__ int _ss[1024];1动态分配当我们在编程时,不清楚shared memory 数组开多大,就要用到动态分配。分为两部分:1, 声明extern __shared__ int _s[]; 2, 在调用kernel 时加上数组的大小。xxx_kernel<<<grid, block, shared...转载 2018-09-29 14:40:48 · 1631 阅读 · 0 评论 -
CUDA并发规约求和
CUDA并发规约求和https://www.cnblogs.com/viviman/archive/2012/11/21/2780286.htmlhttps://blog.csdn.net/abcjennifer/article/details/43528407https://blog.csdn.net/taonull/article/details/52606179https://ww...转载 2018-09-29 22:41:54 · 1756 阅读 · 0 评论 -
threadIdx,blockIdx, blockDim, gridDim之间的区别与联系
https://blog.csdn.net/qq_34488063/article/details/52162454在启动kernel的时候,要通过指定gridsize和blocksize才行,举下面的例子说说:dim3 gridsize(2,2);dim3 blocksize(4,4);gridsize相当于有22个block,gridDim.x,gridDim.y,grid...转载 2018-09-30 15:12:57 · 1722 阅读 · 1 评论 -
CUDA C Programming Guide | Graphics Interoperability【图形交互性】
CUDA C Programming Guide3.2.12 Graphics InteroperabilityOpenGL和Direct3D中的 一些资源可以映射到CUDA的地址空间CUDA能够读取OpenGL或Direct3D编写的数据,或者使CUDA能够编写数据供OpenGL或Direct3D使用。在使用OpenGL互操作和Direct3D互操作功能 映射资源 之前,必须 将资源...原创 2018-10-24 15:47:27 · 346 阅读 · 0 评论 -
移动GPU三种主流架构优缺点浅析
移动GPU三种主流架构优缺点浅析GPU是Graphic Processor Unit的简称,顾名思义就是图形处理器。 GPU的概念最早是从图形工作站发展而来,从90年代的个人电脑普及开始,GPU迎来了其大发展的时代。 在90年代中期,桌面GPU经历了2D到3D的跨越,从此3D图形渲染取代2D成为PC游戏的主流移动GPU的劣势主要表现在理论性能和带宽。 移动GPU受限于芯片的面积,能耗以...转载 2018-10-24 21:43:14 · 1787 阅读 · 0 评论 -
NIVIDIA 硬解码学习2
NIVIDIA 硬解码学习2 做项目学习笔记引言在NIVIDIA 硬解码学习1中大概了解了硬解码的几个组成部分。下载了最新的【Video_Codec_SDK_8.2.16】进行了简答的学习。SDK Samples最简单的硬解码器实现 AppDec先看一下 main 函数的实现int main(int argc, char **argv) { ...原创 2018-09-13 22:01:01 · 9449 阅读 · 4 评论 -
CUDA图像处理 | 模板匹配
模板匹配OpenCV中的模板匹配 该部分转载自 【OpenCV3】模板匹配——cv::matchTemplate()详解匹配方法cv::TM_SQDIFF:该方法使用平方差进行匹配,因此最佳的匹配结果在结果为0处,值越大匹配结果越差。 cv::TM_CCORR:相关性匹配方法,该方法使用源图像与模板图像的卷积结果进行匹配,因此,最佳匹配位置在值最大处,值越小匹配结...原创 2018-09-10 15:36:21 · 2692 阅读 · 6 评论 -
CUDA图像处理 | 简单滤波
形态学8邻域腐蚀__global__ void Morphology_erode_kernel( unsigned char* input, unsigned char* ouput, int nWidth, int nHeight, int nWdithStep) { const int ix = blockIdx.x*blockDim.x + threadI...原创 2018-09-10 11:16:48 · 2783 阅读 · 2 评论 -
CUDA与结构体
为了自定义数据结构方便读取信息. 需要自己定义数据结构 后续工作则可以使用 CUDA流 来缓解 CPU与GPU 数据交互的问题[CUDA GPU编程中使用结构体传递函数参数](https://blog.csdn.net/u013701860/article/details/52605137)...转载 2018-06-17 22:23:09 · 949 阅读 · 0 评论 -
CUDA | 核函数并发
想要实现一个核函数并发的功能 研究一个官方Samples中的代码 concurrentKernels/* * Copyright 1993-2015 NVIDIA Corporation. All rights reserved. * * Please refer to the NVIDIA end user license agreement (EULA) asso...转载 2018-06-17 09:41:36 · 1331 阅读 · 0 评论 -
CUDA 测试时间框架
CUDA内核运行时间的测量函数cudaEvent_t start1; cudaEventCreate(&amp;start1); cudaEvent_t stop1; cudaEventCreate(&amp;stop1); cudaEventRecord(start1, NULL); // 需要测时间的内核函数kernel; cudaEventRecord(stop1...转载 2018-06-15 22:10:16 · 694 阅读 · 0 评论 -
CUDA Samples
CUDA SamplesThere are many CUDA code samples included as part of the CUDA Toolkit to help you get started on the path of writing software with CUDA C/C++The code samples covers a wide range of app...转载 2018-06-13 15:24:38 · 1241 阅读 · 0 评论 -
CUDA编程入门笔记1
要开始给项目中的程序做速度上的优化 由于CPU的计算速度比较慢 所以想用GPU来进行大量相同的计算CUDA编程入门CUDA C基础CUDA C是对C/C++语言进行拓展后形成的变种,兼容C/C++语法,文件类型为”.cu”文件,编译器为”nvcc”,相比传统的C/C++,主要添加了以下几个方面: 函数类型限定符执行配置运算符五个内置变量变量类型限定符其...原创 2018-06-05 22:26:15 · 262 阅读 · 0 评论 -
GPU编程 | CUDA
CUDA编程入门转载 2018-05-23 08:56:44 · 171 阅读 · 0 评论 -
NIVIDIA 硬解码学习4
NIVIDIA 硬解码学习4 做项目的时候遇到一个问题. 就是起了多个解码器,但是解码器各自拥有其上下文,则获得各自解码器解码得到的GPU数据.无法共同操作. 可以参考下面这个程序解决这个问题. AppDecMultiInput This sample application demonstrates shows how to decode multi...原创 2018-09-15 19:54:33 · 1728 阅读 · 2 评论 -
NVDEC_VIdeoDecoder_API_ProgGuide 阅读
NVDEC_VIdeoDecoder_API_ProgGuideVIDEO DECODER PIPELINE使用 UVDECODEAPI 解码任何 Video context的步骤:Create a CUDA context // 创建一个CUDA上下文Query the decode capabilities of the hardware decoder. // 查询硬解...原创 2018-09-12 08:41:51 · 868 阅读 · 0 评论 -
关于 CUDA Context的理解
转载自 cuda Stream和event的相关内容 How to create a CUDA context?cuda initializationcuda initializaiton主要解决什么问题呢?其中一个就是创建 cuda context。即调用这些函数的时候,需要已经有context 存在了。cuda context 非常重要,它作为一个容...转载 2018-09-12 08:50:49 · 10399 阅读 · 1 评论 -
NIVIDIA 硬解码学习1
NIVIDIA 硬解码学习1 https://blog.csdn.net/poweroranger/article/details/77845238 https://blog.csdn.net/LG1259156776/article/details/73274226 https://www.cnblogs.com/betterwgo/p/6613641.html...转载 2018-09-12 11:17:13 · 2053 阅读 · 0 评论 -
GPU内存
GPU的内存系统GPU内存详解GPU的存储系统包括register,shared memory,texture memory, local memory, global memory寄存器 共享纹理 纹理内存 局部内存 全局内存registershared memorylocal memoryglobal memoryconstant memorytexture...转载 2019-07-15 11:13:41 · 470 阅读 · 0 评论