自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

转载 深度学习

如何理解卷积?卷积的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。对于线性时不变系统,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应加权叠加,就直接得到了输出信号。在信号与系统中,卷积就是计算线性时不变系统在信号激励下任意时刻的零状态响应;卷积操作示意图见文末;卷积操作的核心

2017-03-13 09:02:26 445

原创 Linux下安装opencv cmake 命令

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=./build -D  WITH_IPP=OFF -D WITH_CUDA=OFF ../opencv-3.0.0

2017-02-28 18:44:32 889

原创 CUDA任意矩阵相乘 TLP最终版

#include #include #include #include #include #include #include "device_launch_parameters.h"//#include "common.h"using namespace std;#define BLOCK_SIZE_X 32#define BLOCK_SIZE_Y 32

2016-03-21 15:51:11 793

转载 对CUDA内核函数运行时间测量的方法

方法1:cudaEvent_t start1;cudaEventCreate(&start1);cudaEvent_t stop1;cudaEventCreate(&stop1);cudaEventRecord(start1, NULL);需要测时间的内核函数kernel;cudaEventRecord(stop1, NULL);cudaEventSynchroni

2016-03-16 14:11:03 1423

转载 显卡显存带宽的计算

bus width 是显存位宽bandwidth 才是带宽带宽(Bytes/s)=位宽(bit)x显存有效频率(Hz)/8公式:显存位宽 X显存频率(GD3X2 ,GD5要X4)再除以8就是显存带宽。显存有效频率=显存基本频率X显存类型(DDR3的乘以2,DDR5的乘以4)GTX680MX的显存基本频率是1250MHZ。详见GTX680MX的GPUZ测试图。

2016-03-15 10:14:17 5347

转载 有关FLOPS的定义与计算

FLOPS(即“每秒浮点运算次数”,“每秒峰值速度”),是“每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。一个MFLOPS(megaFLOPS)等于每秒一佰万(=10^6)次的浮点

2016-03-14 22:28:41 20603

转载 移除VS2005方案中的Visual SourceSafe绑定信息

有些一个解决方案带有多个项目,由于代码比较多,多人开发,所以好多vs.net下的工程是用source safe进行版本控制的。而用source safe进行版本控制需要局域网路径共享,因此好多项目换一台机器打开会出现一些问题,比如“解决方案看起来是受源代码管理,但无法找到它的绑定信 息……”之类的提示信息很多。      如何不使用其他的工具,轻松移除VS2005解决方案中的V

2015-10-10 10:56:19 488

转载 CUDA在Windows下的软件开发环境搭建

CUDA在Windows下的软件开发环境搭建 本文我们以Visual Studio 2005 为例演示CUDA的安装以及软件开发环境搭建,以及CUDA与MFC联调的实现。1.cuda安装包CUDA是免费使用的,各种操作系统下的CUDA安装包均可以在http://www.nvidia.cn/object/cuda_get_cn.html上免费下载。CUDA提供3个安装包,分别

2015-10-09 22:57:26 443

转载 CUDA开发环境配置大全

一、操作系统:(1)windows操作系统:1.windows xp:(1)       win32_xp_ CUDA3.0_VS2010_配置指南-DOC:http://cudabbs.it168.com/forum.php?mod=viewthread&tid=2250&highlight=vs%2Bcuda(2)       xp下

2015-10-09 20:23:11 411

转载 [综合面试] 面试70问 经典回答

1、请你自我介绍一下你自己,  回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,

2015-10-09 11:09:40 912

转载 [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结

一:操作系统1. 进程的有哪几种状态,状态转换图,及导致转换的事件。2. 进程与线程的区别。3. 进程通信的几种方式。4. 线程同步几种方式。(一定要会写生产者、消费者问题,完全消化理解)5. 线程的实现方式. (也就是用户线程与内核线程的区别)6. 用户态和核心态的区别。7. 用户栈和内核栈的区别。8. 内存池、进程池、线程池。(c

2015-10-09 11:08:47 390

转载 CUDA中Bank conflict冲突

其实这两天一直不知道什么叫bank conflict冲突,这两天因为要看那个矩阵转置优化的问题,里面有讲到这些问题,但是没办法,为了要看懂那个bank conflict冲突,我不得不去找资料,说句实话我现在不是完全弄明白,但是应该说有点眉目了,现在我就把网上找的整理一下,放在这边,等哪天完全弄明白了我就在修改里面的错误。    Tesla 的每个 SM 拥有 16KB 共享存储器,用于

2015-09-28 16:07:09 1385

转载 在 Visual Studio 中使用 CUDA

CUDA 的主要工具是 nvcc,它会执行所需要的程序,将 CUDA 程序代码编译成执行档 (或 object 檔) 。在 Visual Studio 下,我们透过设定 custom build tool 的方式,让 Visual Studio 会自动执行 nvcc。这里以 Visual Studio 2005 为例:首先,建立一个 Win32 Console 模式的 projec

2015-09-28 10:40:18 3092

转载 利用CUDA的矩阵乘法1 <利用 Kahan's Summation Formula 来提高CUDA 的浮点数运算精确度>

//矩阵乘法#include#include#include#include#include #define NUM_THREADS 256 bool InitCUDA(){   int count;   cudaGetDeviceCount(&count);   if(count == 0)

2015-09-24 13:36:54 632

转载 CUDA编程常见问题

最近初试cuda编程,作为一个新手,遇到了各种各样的问题,然后花费了大量时间解决这些匪夷所思的问题。为了避免后来人重蹈覆辙,现把自己遇到的问题总结如下。(一)  cudaMalloc     初次使用该函数,感觉没有什么困难,和c语言的malloc类似。但是在具体应用中却出了一个很难找的错误,花费了很多时间。该函数使用是需要注意的就是,它分配的内存空间单位是字节,所以需要我们在使用

2015-09-24 13:36:01 514

转载 CUDA 图像数据结构

CudaImage.hstruct CudaImage{ int width; int height; float *imData; float *cuData; size_t pitch; size_t nBytes; void setPixel(int x, int y, float val); //设置(x,y)处的像素值为val float getPixel(int

2015-09-24 13:34:41 1076

转载 解决CUDA程序的黑屏恢复问题

问题描述:在运行CUDA程序时,出现黑屏,过一会儿屏幕恢复之后,出现如下界面:==============================================================================解决方案:  调整计算机的TDR值    Timeout Detection & Recovery (TDR)TDR官方解释文档链接:

2015-09-24 13:32:09 3447

转载 CUDA 类型转化

类型转换函数,函数命名格式记住,左边两个下划线,右边一个,中间是类型转换的描述,如__int2float_。 主要好处在于它的选项,其实大多数情况下,使用c内置的自动转换就可以了(相比java,c的方式不太安全,因此使用时还是应该注意溢出)。选项如下:rn:求最近的偶数,问题:5为参数时,返回的是4还是6?rz:返回接近0的数,如__float2int_[rz](5.6)==5

2015-09-24 13:31:09 2138

转载 浅谈CUDA零拷贝内存

今天看到有小伙伴提出了“零拷贝”的问题,由于本人以前用的也比较少,了解不多,因此打算好好研究一番,现做些总结。        零拷贝内存是一种特殊形式的内存映射,它允许你将主机内存直接映射到GPU内存空间。因此,因此对GPU上的内存解引用时,如果是基于GPU的,那么就获得全局内存的高速带宽;如果GPU代码读取一个主机映射变量,它会提交一个PCI-E读取事务,主机会通过PCI-E总线返回数据。

2015-09-24 13:10:21 4168

转载 error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”

1 静态调用DLLProject | setting Link选项卡Library modules处添加“XXX.lib”然后#include "XXX.h"把XXX.lib(引入库文件),XXX.DLL(动态库文件)XXX.h(头文件)全部放到工程目录下2 动态调用DLL通过LoadLibraryGetProcAddressFreeLibr

2015-09-23 11:27:25 794

转载 VS2010 C++环境下DLL和LIB文件目录及名称修改

DLL工程,Debug版本下输出文件由basetool.dll basetool.lib 改为basetoolD.dll basetoold.lib 需设置:1、配置属性-常规-目标文件名 $(ProjectName) 加d2、配置属性-连接器-常规-输出问件 由 加d3、配置属性-连接器-高级-导入库,设置文件名$(OutDir)$ProjectName)d.lib

2015-09-23 10:33:13 1045

转载 VS2005项目中添加lib库以及代码中相对路径的问题

VS 2005项目中添加lib库      应用程序使用外部库时需要进行加载,两种库的加载本质上都是一样:提供功能和功能的定义。vs2005 c++ 项目设置外部库方法如下:1. 添加编译所需要(依赖)的 lib 文件     在“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。等同于“#pragma com

2015-09-23 10:09:15 371

转载 c/c++ 获取当前程序(EXE)所在的路径

一、1.只获得路径字串不包含文件名TCHAR szFilePath[MAX_PATH + 1]={0};GetModuleFileName(NULL, szFilePath, MAX_PATH);(_tcsrchr(szFilePath, _T('\\')))[1] = 0; // 删除文件名,只获得路径字串CString str_url = szFilePath; 

2015-09-22 20:36:10 1277

转载 C++中相对路径与绝对路径以及斜杠与反斜杠的区别

文件路径 正斜杠和反斜杠正斜杠,又称左斜杠,符号是"/";反斜杠,也称右斜杠,符号是"\"。文件路径的表示可以分为绝对路径和相对路径:1、绝对路径表示相对容易,例如pDummyFile =fopen("D:\\vctest\\glTexture\\texture\\dummy.bmp", "rb"); 给出了从盘符开始的全部路径,这里需要注意的是“\”要用双斜线"\\",vc工程默认访

2015-09-22 20:31:15 303

转载 在vs2005中使用静态链接库和动态链接库

静态链接库:首先,静态链接库的使用需要库的开发者提供生成库的.h头文件和.lib文件。生成库的.h头文件中的声明格式如下:    extern "C" 函数返回类型 函数名(参数表);    在调用程序的.cpp源代码文件中如下:    #include "..\lib.h"    #pragma comment(lib,"..\\debug\\libTest.lib")

2015-09-22 15:09:32 2004

转载 VC2005创建和加载.DLL文件的方法

转自:http://blog.sina.com.cn/s/blog_6a0cb8bc0100uzhn.html动态链接库(DLL)简介  动态链接库(DLL)一直都是windows OS的基础.动态链接库通常都不能直接运行,也不能接受消息.他们是一些独立的文件,其中包含能被可执行程序或其他DLL调用来完成某项工作的函数,只有在其他模块调用动态链接库中的函数时,他才发挥作用。静态

2015-09-22 14:34:10 1244

转载 深入理解virtual,abstract class,interface

转自:http://blog.csdn.net/nxh_love/article/details/17297907C++虚函数与JAVA中抽象函数比较1:java中没有虚函数的概念,但是有抽象函数的概念,用abstract关键字表示,java中抽象函数必须在抽象类(abstract class)中,而且抽象 函数不能有函数体,抽象类不能被实例化,只能由其子类实现抽象函数,如果某个抽象类

2015-09-22 14:26:20 397

转载 VS 2005 创建DLL工程,并进行调用与调试例子

转自:http://blog.csdn.net/zwb8848happy/article/details/78315671  例子目标在Window下,学会使用Visual Studio 2005创建简单的DLL工程,以及对DLL提供的接口进行调用与调试。 2  DLL工程2.1 创建工程打开VS2005,并创建工程。如图所示。

2015-09-22 13:38:21 487

转载 cuda创建dll工程

正文:CUDA的DLL开发其实和一般的C/C++的DLL开发是一个原理,当然,DLL的开发就有几种方式,这里就讲最容易理解的,也最直接的方式,然后把代码放出来。大家自己可以琢磨一下其它的方式。1. 创建DLL用我的Wizard 可以创建一个DLL项目工程:选择DLL项目,然后可以看到下面的项目文件结构:其中sampe_cu.h文件为头文件,stdaf

2015-09-22 09:23:17 1156

转载 Opencv中并行图像处理环境的搭建和配置

这一章我们将介绍如何从头搭建并配置一个用于图像处理的VC++并行计算环境。所用操作系统为Windows 7的32位系统,编程环境为VS2005,CUDA版本为3.0,OpenCV版本为1.0。内容包括建立一个基于VS2005的简单的对话框工程,安装和使用OpenCV,以及安装配置CUDA环境。需要注意,支持CUDA的VisualStudio版本为2005~2010,低版本的开发环境不支持。

2015-09-21 10:31:36 1386

转载 深入理解GPU Architecture

作为System Inside系列中的一篇,为了完成它我费了不少力气,因为GPU INSIDE的资料实在太难找了,有很多东西都是NVIDIA(本篇文章以GT200架构为实例)内部资料,没有详细公布,在网上找到的也是些零碎的东西,经过一番周折还是在脑子中形成了一个比较系统的印象,防止这个印象转瞬即逝,赶紧将它记下来。    我决定从CUDA入手,慢慢的深入到core architecture层面

2015-09-18 11:11:52 1947

转载 cuda编程 总结

Cuda并行编程学习时候需注意的一些基本概念1、Cuda的编程风格:spmp(单程序多数据)的并行编程风格。2、在多GPU下,cudaMemcpy()不能用于GPU之间的数据复制3、cudaMemcpy()传输的数据类型有四种:(1)       主机-主机(2)       主机-设备(3)       设备-主机(4)       设备-

2015-09-18 11:09:43 443

转载 GPU 性能指导: 内存性能

转自:http://blog.chinaunix.net/uid-11640640-id-2139803.htmlGPU 性能指导: 内存性能一:内存指令 1:内存指令包括任何从shared,local,globl内存中读或者写指令,仅当存取自动变量时才有可能对local 进行读写; 2:每个时钟周期可有8个内存操作,但是当存取local和globl 时,还有400个clock c

2015-09-17 10:47:59 491

转载 visual profiler 调试cuda并行程序:根据行号定位出错行

用visual profiler 调试cuda程序,如下图:如图所示,显示某些行的访存问题,如328,329,330等。根据行号到cuda代码中,找到相应的行,查看,分析。如此,毕竟不方便。设想,如果想vs中调试程序那样(双击行号可以定位到出问题的行)就好了。只需如下更改:在编译cuda程序的时候,加上-lineinfo 参数即可。如下图所示:编译之后的exe文件,通过nvvp

2015-09-17 10:34:45 600

转载 CUDA优化策略

CUDA程序优化CUDA程序优化应该考虑的点:精度:只在关键步骤使用双精度,其他部分仍然使用单精度浮点以获得指令吞吐量和精度的平衡;           延迟:需要首先缓冲一部分数据,缓冲的大小应该可以保证每个内核程序处理的一批数据能够让GPU慢负荷工作;           计算量:计算量太小的程序使用CUDA很不合算;当需要计算的问题的计算密集度很低的时候,执行

2015-09-17 09:53:02 1031

转载 CUDA优化(重要)

1. memory coalescing,保证内存融合。因为global memory在CC为1.x上是按照half wrap进行访问读写的,而在2.x上是按照wrap进行访问读写的。在显存中,有多个存储器控制器,负责对显存的读写,因此,一定要注意存储器控制器的负载均衡问题。每一个存储器控制器所控制的那片显存中的地址空间称为一个分区。连续的256Byte数据位于同一个分区,相邻的另一组256Byt

2015-09-16 15:47:07 818

转载 64位win7+opencv3.0.0+cuda6.5配置过程

64位win7+opencv3.0.0+cuda6.5配置过程作;1.安装之前确认自己的显卡是否支持CUDA,,并;2.从http://www.nvidia.cn/;3.从https://developer.nvi;4.从http://opencv.org/dow;5.从;二、配置CMAKE;由于未重新编译的OpenCV不支持CUDA,所以;1.点击cmake

2015-09-16 14:37:39 755

转载 CUDA DLL 开发流程

前言:很久没写CUDA相关的文章了,其实也不是忙,只是零碎的事情比较多,不能抽出完整的时间写一些东西,在http://blog.csdn.net/openhero 上写本来想写一些列CUDA编程的文章,不过现在看来,很多朋友还是只是处在开发的初级阶段,一些基本的编程环节还需要讲解一下,其实像lib编程,dll编程,都不是CUDA的内容,这个只是windows,linux系统编程的内容,只要有时间,

2015-09-16 09:22:10 446

转载 Kahan's Summation Formula原理—它是如何处理大数吃小数的

Kahan's Summation Formula原理—它是如何避免大数吃小数的Kahan求和公式原理:       首先,这个算法就是用来求和的,求a1+a2+a3+...为什么不直接相加呢,而要用Kahan求和公式呢,这个算法的用武之地在哪呢,一一道来       kahan求和算法能避免大数吃小数的情况。       大数吃小数是什么意思呢?举个例子,我们用两

2015-09-10 16:47:54 7929 1

转载 cublas矩阵乘

cublas矩阵乘神经网络中有大量的矩阵乘法运算,使用cuda来进行矩阵的乘法运算,可以大大提高神经网络的训练速度,于是学着使用cuda,由于NVIDIA已经提供了非常好的矩阵运算库cublas,所以应该是学着使用cublas,在使用中遇到了一些问题,记录一下,方便以后的查询。cublas中执行矩阵乘法运算的函数主要是:cublasSgemm /*用来处理单精度矩阵,也就是fl

2015-09-10 13:43:24 604

空空如也

空空如也

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

TA关注的人

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