自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (6)
  • 收藏
  • 关注

原创 梳理caffe代码im2col(十七)

这个就是用来

2016-05-31 15:34:31 18852 2

原创 梳理caffe代码adadelta、adagrad、adam、nesterov、rmsprop_solver(十六)

有一篇不错的blog描述梯度下降的方法。这节是新版caffe solver的5个求解方法:adagrad_solver.cpp:#include #include "caffe/sgd_solvers.hpp"namespace caffe {#ifndef CPU_ONLYtemplate void adagrad_update_gpu(int N, Dtype*

2016-05-30 10:49:50 4882

原创 梳理caffe代码sgd_solvers(十五)

新版的caffe就够模块更加规范化了一点,把所有的求解方法都另外分到一个solvers里面,里面有所有的求解方法。那我们就先看看中介部分的sgd_solvers:头文件sgd_solvers.hpp:#ifndef CAFFE_SGD_SOLVERS_HPP_#define CAFFE_SGD_SOLVERS_HPP_#include #include #include "

2016-05-24 21:41:32 10221 5

转载 Latex排版全解

Latex排版全解      LATEX(英语发音:/ˈleɪtɛk/ LAY-tek或英语发音:/ˈlɑːtɛk/ LAH-tek,音译“拉泰赫”),是一种基于TEX的排版系统,由美国电脑学家莱斯利•兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于

2016-05-09 16:46:17 45588 5

转载 CUDA学习笔记十三

CONSTANT  MEMORYconstant Memory对于device来说只读但是对于host是可读可写。constant Memory和global Memory一样都位于DRAM,并且有一个独立的on-chip cache,比直接从constant Memory读取要快得多。每个SM上constant Memory大小限制为64KB。constant Memory的获取

2016-05-09 00:04:16 5085

转载 CUDA学习笔记十二

CUDA SHARED MEMORYshared memory在之前的博文有些介绍,这部分会专门讲解其内容。在global Memory部分,数据对齐和连续是很重要的话题,当使用L1的时候,对齐问题可以忽略,但是非连续的获取内存依然会降低性能。依赖于算法本质,某些情况下,非连续访问是不可避免的。使用shared memory是另一种提高性能的方式。GPU上的memory有两种:

2016-05-09 00:03:21 6326

转载 CUDA学习笔记十一

CUDA Libraries简介 上图是CUDA 库的位置,本文简要介绍cuSPARSE、cuBLAS、cuFFT和cuRAND,之后会介绍OpenACC。cuSPARSE线性代数库,主要针对稀疏矩阵之类的。cuBLAS是CUDA标准的线代库,不过没有专门针对稀疏矩阵的操作。cuFFT傅里叶变换cuRAND随机数CUDA库和CPU编程所用到的库没有什么区别,都是一系列接

2016-05-08 23:59:51 8896

转载 CUDA学习笔记十

Memory Access Patterns大部分device一开始从global Memory获取数据,而且,大部分GPU应用表现会被带宽限制。因此最大化应用对global Memory带宽的使用时获取高性能的第一步。也就是说,global Memory的使用就没调节好,其它的优化方案也获取不到什么大效果,下面的内容会涉及到不少L1的知识,这部分了解下就好,L1在Maxwell之后就

2016-05-08 23:56:27 3976 3

转载 CUDA学习笔记九

Memorykernel性能高低是不能单纯的从warp的执行上来解释的。比如之前博文涉及到的,将block的维度设置为warp大小的一半会导致load efficiency降低,这个问题无法用warp的调度或者并行性来解释。根本原因是获取global memory的方式很差劲。众所周知,memory的操作在讲求效率的语言中占有极重的地位。low-latency和high-bandw

2016-05-08 23:47:10 17072 6

转载 CUDA学习笔记八

Dynamic Parallelism到目前为止,所有kernel都是在host端调用,GPU的工作完全在CPU的控制下。CUDA Dynamic Parallelism允许GPU kernel在device端创建调用。Dynamic Parallelism使递归更容易实现和理解,由于启动的配置可以由device上的thread在运行时决定,这也减少了host和device之间传递数据

2016-05-08 23:43:16 4652

转载 CUDA学习笔记七

这节是关于Branch Divergence and Unrolling Loop。Avoiding Branch Divergence有时,控制流依赖于thread索引。同一个warp中,一个条件分支可能导致很差的性能。通过重新组织数据获取模式可以减少或避免warp divergence(该问题的解释请查看warp解析篇)。The Parallel Reduction Probl

2016-05-08 23:38:36 3671 1

转载 CUDA学习笔记六

Exposing Parallelism这部分主要介绍并行分析,涉及掌握nvprof的几个metric参数,具体的这些调节为什么会影响性能会在后续博文解释。代码准备下面是我们的kernel函数sumMatrixOnGPUD:__global__ void sumMatrixOnGPU2D(float *A, float *B, float *C, int NX, int N

2016-05-08 23:28:46 2082 1

转载 CUDA学习笔记五

Warp逻辑上,所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的thread能够在同一时刻执行,接下来我们将解释有关warp的一些本质。Warps and Thread Blockswarp是SM的基本执行单元。一个warp包含32个并行thread,这32个thread执行于SMIT模式。也就是说所有thread执行同一条指令,并且每个thread会使用各

2016-05-08 23:24:52 6799 2

转载 CUDA学习笔记四

GPU架构SM(Streaming Multiprocessors)是GPU架构中非常重要的部分,GPU硬件的并行性就是由SM决定的。以Fermi架构为例,其包含以下主要组成部分:CUDA coresShared Memory/L1CacheRegister FileLoad/Store UnitsSpecial Function UnitsWarp Scheduler

2016-05-08 23:21:51 5721

转载 CUDA学习笔记三

device管理NVIDIA提供了集中凡是来查询和管理GPU device,掌握GPU信息查询很重要,因为这可以帮助你设置kernel的执行配置。本博文将主要介绍下面两方面内容:CUDA runtime API functionNVIDIA系统管理命令行使用runtime API来查询GPU信息你可以使用下面的function来查询所有关于GPU device 的信

2016-05-08 23:19:58 7171

转载 CUDA学习笔记二

前言线程的组织形式对程序的性能影响是至关重要的,本篇博文主要以下面一种情况来介绍线程组织形式:2D grid 2D block线程索引一般,一个矩阵以线性存储在global memory中的,并以行来实现线性: 在kernel里,线程的唯一索引非常有用,为了确定一个线程的索引,我们以2D为例:线程和block索引矩阵中元素坐标线性global memor

2016-05-08 23:13:10 3232 2

转载 CUDA学习笔记一

本系列的CUDA转自:http://www.cnblogs.com/1024incn/tag/CUDA/版权归原作者所有,仅供学习。由于各种需求,所以略微了解学习一下gpu的CUDA怎么操作?CUDA简介CUDA是并行计算的平台和类C编程模型,我们能很容易的实现并行算法,就像写C代码一样。只要配备的NVIDIA GPU,就可以在许多设备上运行你的并行程序,无论是台式机、笔记本抑或平板电脑。熟悉C语...

2016-05-08 23:03:20 11734 3

原创 opencv的dnn解析

在学习过caffemodel加载之后,回头看看这个dnn里面都编译了哪些函数?先看blob头文件:#ifndef __OPENCV_DNN_DNN_BLOB_HPP__#define __OPENCV_DNN_DNN_BLOB_HPP__#include #include #include namespace cv{namespace dnn{//该类用来存储和处理bl

2016-05-06 22:09:02 17833 27

Tensorflow 实战Google深度学习框架&&TensorFlow;实战(二)

Tensorflow书籍仅供深度学习研究者学习使用,如有商业用途后果自负,本书是黄文坚的tensorflow,

2017-10-17

Tensorflow 实战Google深度学习框架&&TensorFlow;实战(一)

Tensorflow书籍仅供深度学习研究者学习使用,如有商业用途后果自负

2017-10-16

廖雪峰Python3.0.pdf

不同版本的python3.0基础教程

2016-08-02

廖雪峰Python2.7.pdf

基础教程python2.7适合新手学习

2016-08-02

TensorFlow Python API documentation

一个详细的Tensorflow的python教程

2016-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除