自定义博客皮肤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)
  • 收藏
  • 关注

转载 什么是卷积、傅里叶变换?

<br />转于某博客<br />很多朋友和我一样,工科电子类专业,学了一大堆信号方面的课,什么都没学懂,背了公式考了试,然后毕业了。<br />   先说"卷积有什么用"这个问题。(有人抢答,"卷积"是为了学习"信号与系统"这门课的后续章节而存在的。我大吼一声,把他拖出去枪毙!)<br />   讲一个故事:<br />   张三刚刚应聘到了一个电子产品公司做测试人员,他没有学过"信号与系统"这门课程。一天,他拿到了一个产品,开发人员告诉他,产品有一个输入端,有一个输出端,有限的输入信号只会产生有限的输出

2011-04-21 17:36:00 1799

转载 蒙特卡洛法求Pi

<br />编程实现如下模拟:<br />飞镖被随机地投掷到以(1,1)和(-1,-1)为对角的正方形内。若飞镖落在单位圆内【即以(0,0)为圆心,1为半径的圆】,算命中。否则未命中。<br />运行这个模拟并用它求PI的近似值。<br /> <br />模型如下图所示:<br /><br />// Circle_PI.cpp : 定义控制台应用程序的入口点。//#include <iostream>#include <cstdlib>#include <ctime>#include

2011-04-21 16:05:00 1925

转载 卷积的意义

<br />卷积 <br />最近总是和卷积打交道,工作需要,每天都要碰到它好几次,不胜烦恼,因为在大学时候学信号与系统的时候就没学会,我于是心想一定要把卷积完全搞明白。正好同办公室的同学也问我什么是卷积,师姐昨天也告诉我说:"我也早就想把这个问题搞明白了!"经过一段时间的思考之后,有一些很有趣的体会和大家分享。<br />听说卷积这种运算式物理学家发明的,在实际中用得不亦乐乎,而数学家却一直没有把运算的意义彻底搞明白。仔细品以下,还是有那么点滋味的。<br />下面先看一下剑桥大学的教科书对卷积的定义:

2011-04-20 16:40:00 1032

原创 CUDA中Bank conflict冲突

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

2011-04-20 14:37:00 11764 3

转载 Win32消息处理API---PeekMessage

<br />03、PeekMessage<br />功能说明<br />WinCE/Win32:该函数从进程消息队列中检索一个消息,并将该消息(如果存在的话)赋值给指定的消息结构。跟GetMessage不同之处在于:PeekMessage不会等待消息,而是不间断地访问消息队列,不管消息队列的目前状态如何。<br />PeekMessage在检索应用程序的消息队列时,如果其中有消息就将其放入lpMsg(如下所示的函数原型的声明中)所指的结构中,同时PeekMessage函数不会等到有消息放入队列时才返回。同样

2011-04-13 15:39:00 1061

转载 OpenGL VBO顶点缓冲的使用(转)

<br />OpenGL VBO并不难,但是较繁琐,其实其概念跟加载纹理类似:<br />初始化阶段:<br />1. glGenBuffersARB(1, &nVBOVertices); //生成一个句柄<br />2. glBindBufferARB(GL_ARRAY_BUFFER_ARB, nVBOVertices); //声明该句柄为一个vbo句柄,并选择之<br />3. glBufferDataARB(GL_ARRAY_BUFFER_ARB, sizeof(vertices), vertices

2011-04-13 15:38:00 1003

原创 CUDA学习(四)

<br />一.纹理存储器介绍<br />纹理存储器(texture memory)是一种只读存储器,由GPU用于纹理渲染的的图形专用单元发展而来,因此也提供了一些特殊功能。纹理存储器中的数据位于显存,但可以通过纹理缓存加速读取。在纹理存储器中可以绑定的数据比在常量存储器可以声明的64K大很多,并且支持一维、二维或者三维纹理。在通用计算中,纹理存储器十分适合用于实现图像处理或查找表,并且对数据量较大时的随机数据访问或者非对齐访问也有良好的加速效果<br />纹理缓存有两个作用。首先,纹理缓存中的数据可以被重

2011-04-13 15:33:00 1313

原创 CUDA学习(三)

<br />     今天我讲讲CUDA所用到的编译器nvcc:<br /> —nvcc编译器根据配置编译CUDA C代码,可以生成三种不同的输出:PTX、CUDA二进制序列和标准C。—nvcc可编译同时包含主机代码(在主机上执行的代码)和设备代码(在设备上执行的代码)的源文件。nvcc的基本流程包括分离主机和设备代码并将设备代码编译成汇编形式(PTX)或/和二进制形式(cubin对象)。生成的主机代码要么被输出为C代码供其它工具编译,要么在编译的最后阶段被nvcc调用主机编译器输出为目标代码。 —应用在运

2011-04-12 16:59:00 1453

原创 CUDA学习(二)

<br />   今天我就来讲讲有关于CUDA的编程模型:<br />    1.主机和设备<br />       CUDA 编程模型将CPU作为主机(Host),GPU作为协处理器或者设备(Device),在一个系统中可以存在一个主机和若干个设备。<br />             在这个模型中,CPU与CPU协同工作,各司其职。CPU负责进行逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务。CPU、GPU各自拥有相互独立的存储器地址空间:主机端的内存和设备端的显存。<br /

2011-04-12 16:48:00 1147

原创 CUDA学习(一)

<br />    想想学习CUDA的时间也应该有十来天了,也该是做一个小总结了,说说我理解的CUDA,它到底是什么东西?<br />     其实说到CUDA,还真的没几个人知道,说实话,我也听说不久,主要因为它2007年才刚发布,也是这几年才刚兴起,国内那就更慢了。<br />    CUDA它中文的名字是统一计算设备架构,CUDA是一种将GPU作为数据并行计算设备,听到并行这个名称,我相信很多热爱计算机的朋友就特别兴奋,因为这意味着速度会很快,确实,CUDA就是为了提高计算速度的一个计算机架构。<br

2011-04-12 16:40:00 1025

转载 深入浅出CUDA(四)

<br />“CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 语言为基础,可以直接以大多数人熟悉的 C 语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。”<br />改良第一个 CUDA程序<br />在上一篇文章中,我们做了一个计算一大堆数字的平方和的程序。不过,我们也提到这个程序的执行效率并不理想。当然,实际上来说,如果只是要做计算平方和的动作,用 CPU 做会比用 GPU 快得多。这是因为平方和的计算并不需要太多运算能力,所以几乎都是被内存带宽所限制。

2011-04-12 15:26:00 1019

转载 main函数学习

我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main (argc,argv)int argv;

2011-04-12 09:09:00 712

原创 一个CUDA的小例子(向量相加)

<br />一个实现用CUDA技术来实现向量相加的小例子:<br />用每一个线程来计算两个向量相对应的数据:<br />#include<stdio.h>#include<cutil_inline.h>//主机端变量float* h_A;float* h_B;float* h_C;//设备端变量float* d_A;float* d_B;float* d_C;bool noprompt = false;//Functionsvoid Cleanu

2011-04-11 22:53:00 2925 3

转载 深入浅出谈CUDA(三)

“CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 语言为基础,可以直接以大多数人熟悉的 C 语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。”第一个CUDA程序CUDA 目前有两种不同的 API:Runtime API 和 Driver API,两种 API 各有其适用的范围。由于 runtime API 较容易使用,一开始我们会以 runetime API 为主。CUDA 的初始化首先,先建立一个档案 first_cuda.cu。如果是使用 Visual

2011-04-11 22:49:00 1127

原创 CUDA在VS2008下的安装

<br />一、首先安装CUDA软件包,可以从NVIDIA官方网站上下载,我选择的是当前的最新版本3.2. 需要下载的东西有3个,分别是:<br />1.先安装开发驱动(cudatoolkit_3.2.7_win_32.msi);<br />2.安装Toolkit。默认路径是:C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v3.2<br />3.最后安装SDK文件,默认路径是:C:/ProgramData/NVIDIA Corporation/NVID

2011-04-11 16:47:00 1421 1

转载 深入浅出谈CUDA(一)

<br />深入浅出谈CUDA(一):   书签<br />“CUDA 是 NVIDIA 的 GPGPU 模型,它使用 C 语言为基础,可以直接以大多数人熟悉的 C 语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构。”<br />CUDA是什么?能吃吗?<br />编者注:NVIDIA的GeFoce 8800GTX发布后,它的通用计算架构CUDA经过一年多的推广后,现在已经在有相当多的论文发表,在商业应用软件等方面也初步出现了视频编解码、金融、地质勘探、科学计算等领域的产品

2011-04-11 16:45:00 1506

原创 用CUDA来判断素数程序

<br />      使用CUDA判断是否为素数程序,每个线程判断一个数是否可以被整除,将每线程判断结果写入shared memory内,然后统计结果,如果全部不能被整除,那就是素数,代码如下:<br />#include <stdio.h>#include <stdlib.h>#include <cuda_runtime.h>#define TEST 999961#define THREAD_NUM 256#define BLOCK_NUM 32long data[T

2011-04-11 12:01:00 1611

原创 缓冲区对象

<br />        今天在做CUDA的程序,突然出现了有关OpenGL缓冲区对象的函数,这让我很是纠结,因为我的OpenGL的基础不是很好,才接触不到一个月,今天我就稍微介绍一下缓冲区对象的有关函数。(参考OpenGL编程指南)<br />     在许多OpenGL操作中,我们向OpenGL发送一大块数据,例如向它传递需要处理的顶点数据。传输这种数据可能非常简单,例如把数据从系统的内存中复制到图形卡。但是,由于OpenGL按照客户机-服务器模式而设计的,在OpenGL需要数据的任何时候,都必须把数

2011-04-10 23:53:00 1034

空空如也

空空如也

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

TA关注的人

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