自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Running Jonny

图形图像 计算机视觉 CUDA编程 OPENGL编程

  • 博客(24)
  • 资源 (2)
  • 收藏
  • 关注

原创 CSemaphore的使用

信号量是CSemaphore的对象,它允许有限数目的线程在一个或多个进程中访问同一个资源,从而实现多线程之间的同步。一个CSemaphore对象保持了对当前访问某一指定资源的线程的计数。。CSemaphore类的构造函数原型如下:CSemaphore(     LONG lInitialCount /* = 1*/,    //计数器的初始值     LONG lMaxCount

2014-07-07 20:47:32 1309

原创 【走进CUDA】~详解CUDA核函数及运行时参数

详解CUDA核函数及运行时参数。

2014-04-08 21:27:21 6982

原创 【走近CUDA】_并行计算与CUDA简介

随着硬件技术的发展,并行计算已经逐步走进大家的生活。你在用社交软件聊天的同时,可能需要浏览网页,播放音乐。而只能打电话的手机,已经不是大家期待的手机。这些都受益于并行计算的发展。早期的并行计算主要是在CPU上完成的。提升CPU的性能主要有以下两种方式:1)提高处理器的时钟频率2)增加处理器的数量而在图形处理上执行通用计算是一个新概念。早期的GPU主要负责对显示器做图形的渲染。通过像

2014-04-04 12:32:03 1453 4

原创 [菜鸟每天来段CUDA_C]多GPU的使用

单个GPU具有强大的并行计算的能力,当把多个GPU同时用来执行同一个任务的时候,计算的性能将会得到更大的提升。本文在两块GPU上实现大数据量的向量点积运算

2014-03-19 16:25:08 3246 3

原创 [菜鸟每天来段CUDA_C]使用多个CUDA流提高程序执行效率

实验通过把一组数据分块复制到GPU执行,返回执行结果,来说明使用cuda流的使用能提高程序的执行效率

2014-03-18 16:04:07 4765 7

原创 [Excel使用技巧]Excel的宏安全性不能修改

打开带有宏的Excel文件,有时会提示更改宏的安全性以使用文档,但从菜单修改却不能生效。即在此打开文档或调用宏代码的时候还是会弹出提示,无法使用宏。分享解决办法,

2014-03-13 19:32:45 3263

原创 [菜鸟每天来段CUDA_C] 利用页锁定内存提高运算效率

本文通过使用malloc分配内存和cudaHostAlloc分配页锁定内存,说明使用页锁定内存可提高运算效率,并指出哪些场合适合使用页锁定内存。malloc分配的是标准的可分页的(pagable)的主机内存,操作系统在对内存进行调度的时候可能会将这种内存分页或者交换到磁盘上,需要的时候再调回内存,这样就会增加运算时间。而cudaHostAlloc分配的是页锁定的(page-locked)主机内

2014-02-24 20:05:42 2493 2

原创 [菜鸟每天来段CUDA_C] GPU上实现直方图计算

本文通过在GPU上计算直方图说明GPU计算中的原子操作。

2014-02-23 18:38:11 3922 1

原创 [菜鸟每天来段CUDA_C]CUDA与OpenGL互操作

本文要解决的问题是如何实现CUDA和OpenGL的互操作,使得GPU能够将通用计算的运算结果交给OpenGL进行绘制。本文的应用程序主要包括两个方面:1.      使用CUDA核函数生成图像数据2.      将数据传递给OpenGL驱动程序并进行渲染实现这个功能需要按如下四个步骤:Step1: 申明两个全局变量,保存指向同一个缓冲区的不同句柄,指向要在OpenGL和CUDA

2013-12-08 15:28:07 4085 1

原创 [菜鸟每天来段CUDA_C]CUDA实现简单热传导动态模拟

本文利用CUDA实现简单二维平面上的热传导模拟。假设有一个矩形房间,将其分成一个网格,在网格中随机散布一些热源,热源有不同的固定温度,然后就可以计算网格中每个单元的温度随时间的变化情况。本文将热传导模型做如下简化:某单元的新时刻温度等于原有温度加其与邻接单元的温差,邻接单元取上下左右四个单元。

2013-12-03 15:14:09 3310 1

原创 [菜鸟每天来段CUDA_C]GPU上通过常量内存实现光线跟踪

光线跟踪是从三维场景生成二维图像的一种方式。主要思想为:在场景中选择一个位置放上一台假想的相机,该相机包含一个光传感器来生成图像,需要判断那些光将接触到这个传感器。图像中每个像素与命中传感器的光线有相同的颜色和强度。传感器中命中的光线可能来自场景中的任意位置,想象从改像素发出一道射线进入场景中,跟踪该光线穿过场景,直到光线命中某个物体。 本文实现一个简单场景的光线跟踪,场景中只有一组不同半径的球,没有任何光源,假想相机固定在Z轴。从每个像素发射一道光线,跟踪这些光线会命中哪些球面。当一束光

2013-11-28 17:38:00 2524 7

原创 [菜鸟每天来段CUDA_C]基于共享内存的位图与syncthreads的使用

本文使用CUDA实现基于共享内存的位图显示。位图中每个位置的像素值由每个线程计算,计算结果保存到缓冲区(共享内存)中。结果为一个由多个绿色球形构成的网格。

2013-11-25 11:22:45 2354

原创 [菜鸟每天来段CUDA_C]CUDA实现向量的点积运算

本文利用CUDA实现向量的点积运算。主要思想是:每个线程计算两个相应元素的乘积,然后利用共享内存(__shared__)累计每个线程的结果,得到一个线程块内向量的部分内积,最后在CPU上对个线程块的结果求和,从而得到点积运算结果。

2013-11-22 14:07:56 2919 1

原创 [菜鸟每天来段CUDA_C]GPU实现水波动画效果

本文利用GPU强大的计算能力生成不同时刻的水波图片,并使用OpenGL绘制,实现水波动画效果。其中几个时刻的截图如下:生成一帧动画的代码为:void generateFrame(DataBlock *d, int ticks){ dim3 blocks(DIM/16, DIM/16); dim3 threads(16, 16); kernel>>(d->dev_bitmap

2013-11-21 20:04:44 1841

原创 [菜鸟每天来段CUDA_C]GPU上实现任意长度的矢量求和

由于GPU硬件的限制,核函数kernel中B的数量限制为不超过65535;同样对于启动核函数中每个线程块中的线程数量,T不能超过设备属性结构(cuDeviceProp)中maxThreadsPerBlock的值,对于目前的GPU,该限制值是每个线程块512个线程。即当矢量的长度超过65536*128时,核函数的调用会失败,而目前的GPU对处理这种量级的运算时很常见的。        当

2013-11-21 10:39:38 1580

原创 [菜鸟每天来段CUDA_C]基于GPU的Julia集

Julia集是一个著名的分形集,它是复数经过迭代得到的,是满足某个复数计算函数的所有点构成的边界。算法思想:通过一个简单的迭代等式对复平面中的点求值,如果在计算某个点时迭代的结果是发散的,那么这个点就不属于Julia集。相反,如果迭代计算得到的一系列值都位于某个边界范围之内,那么这个点就属于Julia集。迭代计算的公式为:Z(n+1) = Z(n)^2 + C  (C为常数

2013-11-20 16:21:25 2464

原创 [菜鸟每天来段CUDA_C]CppIntegration在C++程序中引用CUDA程序

本文主要实现在C++程序中引用CUDA程序,主要意义是使顺序定义的数据能在CUDA程序中并行执行,然后返回结果。程序主要包括main.cpp                                 定义main函数,需要处理的数据                        Integration.cu                      CUDA初始化,显存分配,

2013-11-19 21:38:52 1480

原创 [菜鸟每天来段CUDA_C]向量相加的CUDA实现和顺序执行比较

本文首先利用CUDA实现了两个50000维向量加法的并行运算,然后对两个向量串行相加,对两者的计算时间做了比较。1. CUDA 向量相加A、B为随机生成的长度为50000的数组。核函数:__global__ void vecAdd(const float* A, const float* B, float* C, int N){int i = b

2013-11-18 21:50:24 2027

原创 MFC中利用CDockablePane实现悬浮窗

VS2008提供CDockablePane实现悬浮窗效果,各小窗口可以根据需要调整布局。本文介绍CDockablePane的使用方法以及使用中遇到的一些问题及解决方案。 首先展示一下最终效果 按住鼠标拖动小窗口,效果如下,可以根据需要选择放置位置:  实现步骤: 1.       新建一个MFC应用程序,其他选择默认。2.       新建MFC类C

2013-10-23 17:39:34 6462 5

原创 [Cuda学习笔记]MFC环境中CUDA程序的配置与调试

本文在MFC界面下,点击按钮读入图像(OpenCV)用CUDA做中值滤波,并显示滤波后的结果。 环境:VS2008 CUDA4.0 1.       创建MFC应用程序CUDATest,全部选择默认。2.       右击项目名称,添加—新建筛选器—输入筛选器名称CUDA。3.      CUDA筛选器右键,添加--新建项,选择CUDA项,输入test.cu。

2013-10-10 22:08:02 2826 3

原创 [CUDA学习笔记]从Hello Cuda开始

1.  Cuda 编程环境的搭建:    网上针对不同的操作系统和cuda版本有很多详细的安装说明,推荐使用安装Cuda VS Wizard,下载地址http://sourceforge.net/projects/cudavswizard/。 2.  第一个Cuda程序:    新建项目,选择CUDA—CUDAWinAPP—输入项目名称—确定。其中一个自动生

2013-09-02 11:45:40 1591

原创 MFC文件选择对话框CFileDialog的使用

文件选择对话框(CFileDialog)的使用: 首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog( BOOL bOpenFileDialog,                                                LPCTSTR lpszDefExt = NULL,                

2013-07-19 20:43:52 872

原创 MFC应用程序中enable或disable菜单项

在MFC应用程序中需要enable或disable菜单项时,在主菜单中调用 CMenu::EnableMenuItem不起作用......如何disable菜单项?     根据以往的经验,要解决这种问题,似乎应该有一个象EnableMenuItem之类的API函数,它的功能就是enable或disable菜单项。Windows中确实有这样的函数-但不是在MFC的应用中(经测试不能达到

2013-07-19 20:37:06 3877 1

原创 极线几何[Epipolar Geometry]

前段时间看过一篇文章Image-Based Visual Hulls[Matusik,siggraph2000],其中关于Epipolar Geometry(可以翻译为极线几何,也有人叫对极几何)的部分没有搞明白,最近看到了关于这部分的介绍,整理一下。 M为三维空间中的点,C1和C2为空间中两台摄像机所在位置,MC1与成像平面交于m1,MC2与成像平面交于m2,C1C2连线与两成像平面分别

2013-03-19 23:32:40 4473 1

CUDA实现基于共享内存的位图显示

CUDA实现基于共享内存的位图显示,线程同步

2013-11-25

GPU上CUDA实现水波动画效果

利用GPU强大的计算能力生成不同时刻的水波图片,并使用OpenGL绘制,实现水波动画效果

2013-11-21

空空如也

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

TA关注的人

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