代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

推荐文章

CUDA - Shared Memory

    CUDA ---- Shared MemoryCUDA SHARED MEMORY shared memory在之前的博文有些介绍,这部分会专门讲解其内容。在global Memory部分,数据对齐和连续是很重要的话题,当使用L1的时候,对齐问题可以忽略,但是非连续的获取内存依然会降低性能。依赖于算法本质,某些情况下,非连续访问是不可避免的。使用shared memory是另一种提高性能的方式。 GPU上的memory有两种: · On-board memory · On-chip memory global memory就是一块很大的on-board memory,并且有很高的latency。而shared memory正好相反,是一块很小,低延迟的on-chip memory,比global memory拥有高得多的带宽。我们可以把他当做可编程的cache,

    阅读全文>>

作者:coody分类:【_CUDA浏览(1150

2019-08-17

CUDA - CUDA库简介

    CUDA ---- CUDA库简介CUDA Libraries简介   上图是CUDA 库的位置,本文简要介绍cuSPARSE、cuBLAS、cuFFT和cuRAND,之后会介绍OpenACC。 cuSPARSE线性代数库,主要针对稀疏矩阵之类的。 cuBLAS是CUDA标准的线代库,不过没有专门针对稀疏矩阵的操作。 cuFFT傅里叶变换 cuRAND随机数 CUDA库和CPU编程所用到的库没有什么区别,都是一系列接口的集合,主要好处是,只需要编写host代码,调用相应API即可,可以节约很多开发时间。而且我们完全可以信任这些库能够达到很好的性能,写这些库的人都是在CUDA上的大能,一般人比不了。当然,完全依赖于这些库而对CUDA性能优化一无所知也是不行的,我们依然需要手动做一些改进来挖掘出更好的性能。 下图是《CUDA C编程》中提到的一些支持的库,具体细节可以在NVIDI

    阅读全文>>

作者:coody分类:【_CUDA浏览(1212

2019-08-18

闵大荒之旅(4) - CUDA预热

    闵大荒之旅(四) ---- CUDA预热 上一回演示了使用OpenCV中集成的gpu部分进行gpu编程,实现hog+svm算法对行人进行检测,检测效果对比得出gpu运行时间要远比cpu运行时间小,更加具有实时性。但是直接使用OpenCV中的函数,显得过于呆板,灵活性较差,于是,为了将gpu运算牢牢掌握在自己手里,我选择CUDA编程,接下来,我简单的介绍一下gpu、cuda的一部分内容。   1.CPU是顺序处理;GPU是并行处理,并行计算将大大缩短时间; 2.CUDA是NVIDIA公司推出的语言风格与C语言很相似的一款通用架构,必须要在NVIDIA公司生产的显卡上使用; 3.CUDA虽然是对GPU并行计算的一个编程框架,但是并不代表这不涉及到CPU:CPU负责进行逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务; 4.Jetson TK1板子上并不只是有

    阅读全文>>

作者:coody分类:【_CUDA浏览(1179

2019-08-17

cuda学习1-初步庐山真面目

    cuda学习1-初始庐山真面目  cuda作为gpu计算中的代表,拥有着超级高的计算效率,其原因是gpu实际相当与一台超级并行机组,使用过MPI做并行计算的人们可能知道,所谓的并行计算,简单讲就是用多个U(计算单元)来完成一个U的计算任务,MPI中将其叫做核,我们知道一个cpu有一个或2,4,8个核,超级厉害的也就16个吧,原来人们为了做大规模的并行计算,将一大堆cpu装在柜子里,组成计算集群,但是那种设备大的吓人,而且又有多少人会用呢。gpu则不同,一个小小的芯片上就存在着成千上万的线程,是由分为grid,block,thread三级结构实现的。(本人初学者,学到哪写到哪,借鉴需谨慎)   所谓的并行计算,就是用多个计算单元共同完成一个计算任务,那这有什么难度呢,这在生活中很常见啊,似乎没什么可学的,可以想象我们造一座房子,我们要找一堆人过来,然后分配下任务,这里面有人做墙,有人做地板,

    阅读全文>>

作者:coody分类:【_CUDA浏览(508

2019-08-18

【CUDA并行程序设计系列(四)】CUDA内存

    【CUDA并行程序设计系列(4)】CUDA内存前言 CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。 本系列目录: 【CUDA并行程序设计系列(1)】GPU技术简介 【CUDA并行程序设计系列(2)】CUDA简介及CUDA初步编程 【CUDA并行程序设计系列(3)】CUDA线程模型 【CUDA并行程序设计系列(4)】CUDA内存 【CUDA并行程序设计系列(5)】CUDA原子操作与同步 【CUDA并行程序设计系列(6)】CUDA流与多GPU 关于CUDA的一些学习资料 本章将介绍CUDA的内存

    阅读全文>>

作者:coody分类:【_CUDA浏览(1112

2019-08-16

Caffe + Ubuntu 15.04 + CUDA 7.0 装配以及配置

    Caffe + Ubuntu 15.04 + CUDA 7.0 安装以及配置 作为小码农的我,昨天就在装这个东东了,主要参考第一篇博文,但是过程发现很多问题,经过反反复复,千锤百炼,终于柳暗花明,我把这个caffe给搞定了,是故,我发布出来,后之来者,欲将有感于斯文~ 本分分为四个部分,在Ubuntu上调试运行成功,第一部分:nVidia驱动和CUDA Toolkit的安装和调试;第二部分 Python安装和调试;第三部分 Matlab安装和调试;第四部分 Caffe的安装和测试。 第一部分:nVidia驱动和CUDA Toolkit的安装和调试 这里以CUDA 7.0为例。 一、CUDA Repository 获取CUDA安装包,安装包请自行去NVidia官网下载。 $ sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28

    阅读全文>>

作者:coody分类:【_CUDA浏览(1491

2019-08-17

【CUDA并行程序设计系列(三)】CUDA线程模型

    【CUDA并行程序设计系列(3)】CUDA线程模型前言 CUDA并行程序设计系列是本人在学习CUDA时整理的资料,内容大都来源于对《CUDA并行程序设计:GPU编程指南》、《GPU高性能编程CUDA实战》和CUDA Toolkit Documentation的整理。通过本系列整体介绍CUDA并行程序设计。内容包括GPU简介、CUDA简介、环境搭建、线程模型、内存、原子操作、同步、流和多GPU架构等。 本系列目录: 【CUDA并行程序设计系列(1)】GPU技术简介 【CUDA并行程序设计系列(2)】CUDA简介及CUDA初步编程 【CUDA并行程序设计系列(3)】CUDA线程模型 【CUDA并行程序设计系列(4)】CUDA内存 【CUDA并行程序设计系列(5)】CUDA原子操作与同步 【CUDA并行程序设计系列(6)】CUDA流与多GPU 关于CUDA的一些学习资料 在前一章的代码虽然是

    阅读全文>>

作者:coody分类:【_CUDA浏览(1769

2019-08-17

CUDA学习笔记2

    CUDA学习笔记二简单的向量加 /** * Vector addition: C = A + B. * * This sample is a very basic sample that implements element by element * vector addition. It is the same as the sample illustrating Chapter 2 * of the programming guide with some additions like error checking. */ #include <stdio.h> // For the CUDA runtime routines (prefixed with "cuda_") #include <cuda_runtime.h&g

    阅读全文>>

作者:coody分类:【_CUDA浏览(817

2019-08-16

ubuntu Gnome 15.04 /ubuntu 12.04 装cuda 7.0心得贴

    ubuntu Gnome 15.04 /ubuntu 12.04 装cuda 7.0经验贴ubuntu Gnome 15.04 /ubuntu 12.04 装cuda 7.0经验贴 由于最近要跑caffe,还有要跑一些cuda程序,就边学边配置,一路装过来还真不容易,双系统(Window 7+ubuntu),做一个笔记以后留着来用: 前提工作:已经装好双系统,若没有装好,参考如下: 硬盘安装和U盘安装 [ Win7系统下硬盘安装Ubuntu 12.04双系统 ] 提示:在装好ubuntu系统后若发现,安装完成重启后默认启动为Ubuntu系统,则在程序—附件—终端(快捷键Ctrl+Alt+T)修改如下:sudo mv /etc/grub.d/30_os-prober /etc/grub.d/06_os-prober;然后会提示输入密码,输入完成后,执行下面命令:

    阅读全文>>

作者:coody分类:【_CUDA浏览(1492

2019-08-18

显卡的有关性能参数含义(struct cudaDeviceProp)

    显卡的相关性能参数含义(struct cudaDeviceProp)中文译注(英文见下文):struct cudaDeviceProp {char name[256];         //器件的名字size_t totalGlobalMem;    //Global Memory 的byte大小size_t sharedMemPerBlock;   //线程块可以使用的共用记忆体的最大值。byte为单位,多处理器上的所有线程块可以同时共用这些记忆体int regsPerBlock;               &

    阅读全文>>

作者:coody分类:【_CUDA浏览(2023

2019-08-17

实验室中筹建Spark集群和PyCUDA开发环境

    实验室中搭建Spark集群和PyCUDA开发环境1、安装CUDA 1.1安装前工作 1.1.1选取实验器材 实验中的每台计算机均装有双系统。选择其中一台计算机作为master节点,配置有GeForce GTX 650显卡,拥有384个CUDA核心。另外两台计算机作为worker节点,一个配置有GeForce GTX 650显卡,另外一个配置有GeForce GTX 750 Ti显卡,拥有640个CUDA核心。  在每台计算机均创建hadoop用户并赋予root权限,本文所有的操作都将在hadoop用户下进行。 1.1.2安装前准备 用以下命令来验证计算机有一个支持CUDA的GPU,只要型号存在于NVIDIA官网(https://developer.nvidia.com/cuda-gpus)就没问题: $ lspci | grep -i nvidia 用以下命令验证有一个支持CUD

    阅读全文>>

作者:coody分类:【_CUDA浏览(599

2019-08-18

Caffe筹建:Ubuntu14.04 + CUDA7.5 + opencv3.1+python3.5

    Caffe搭建:Ubuntu14.04 + CUDA7.5 + opencv3.1+python3.5  从Hinton在science上发表深度学习训练开创新的文章以来,深度学习火了整整有3年多,而且随着新的硬件和算法的提出,深度学习正在应用于越来越多的领域,发挥其算法的优势。   实验室并没有赶上第一波深度学习热,但是让人高兴的是最近终于配了一台超级电脑,虽说和谷歌、百度几百个上千个GPU跑算法的设备不能比,但是好歹终于有了搭建自己的深度学习平台,想想还很是兴奋。最近这几天忙着搭建深度学习平台,把现在最火的Caffe框架代码跑通,从最初对ubuntu的菜鸟到现在顺利搭建起深度学习平台,中间走了很多弯路,现在把自己从系统安装到最后测试中遇到的问题及关键步骤记录下来,加深对caffe理解的同时,也方便自己后续安装时重新查找资料,避免浪费时间和精力。 机器配置: GPU:NVIDIA

    阅读全文>>

作者:coody分类:【_CUDA浏览(1745

2019-08-17

cuda学习2-block与thread数量的提选

    cuda学习2-block与thread数量的选取  由上一节可知,在main函数中,cuda程序的并行能力是在add<<<N,1>>>( dev_a, dev_b, dev_c )函数中体现的,这里面设置的是由N个block的构成的计算网络即grid,每一个block里面有1个thread存在。那么这种选取有什么用意呢,如何针对自己的计算问题设置计算网络呢?   首先要说明这两个数的选取没有固定的方法,完全是根据自身需求。其实它的完整形式是Kernel<<<Dg,Db, Ns, S>>>(param list);<<<>>>运算符内是核函数的执行参数,告诉编译器运行时如何启动核函数,用于说明内核函数中的线程数量,以及线程是如何组织的。   参数Dg用于定义整个grid的维度和尺寸,

    阅读全文>>

作者:coody分类:【_CUDA浏览(2066

2019-08-18
上一页 1/5页 下一页