上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 24 下一页

2014年3月17日

GPGPU OpenCL Reduction操作与group同步

摘要: Reduction操作:规约操作就是由多个数生成一个数,如求最大值、最小值、向量点积、求和等操作,都属于这一类操作。有大量数据的情况下,使用GPU进行任务并行与数据并行,可以收到可好的效果。group同步:OpenCL只提供了工作组内的各线程之间的同步机制,并没有提供所有线程的同步。提供组内item-work同步的方法: void barrier (cl_mem_fence_flags flags) 参数说明:cl_mem_fence_flags 可以取CLK_LOCAL_MEM_FENCE、CLK_GLOBAL_MEM_FENCE 函数说明:(1)一个work-group中所有work... 阅读全文

posted @ 2014-03-17 17:14 旭东的博客 阅读(5454) 评论(1) 推荐(0) 编辑

2014年3月14日

VS2010 OpenCL运行环境配置

摘要: 1.安装AMD GPU显卡驱动(安装后重启) 13-12_win7_win8_64_dd_ccc_whql.exe2.安装AMD OpenCL SDK(安装后重启) AMD-APP-SDK-v2.9-Windows-641.exe3.配置VS2010 OpenCL环境 (1)添加外部头文件 在项目->properties ->Configuration Proprtties->C/C++->General中设置。 (2)添加外部依赖OpenCL.lib 添加OpenCL.lib所在路径 在项目->properties ->Configuration Prop 阅读全文

posted @ 2014-03-14 18:15 旭东的博客 阅读(3957) 评论(1) 推荐(0) 编辑

2014年3月13日

C++ 操作符重载

摘要: 1.什么是操作符重载 可以使用分词将操作符重载理解为:操作符+重载。 C++中的操作符很多,如+,-,*,\等等。 C++中的重载也是C++中面向对象多态的体现。 简单说操作符重载: C++中有:int a=2+3; 那么a=5 操作符重载可以实现对自定义类型的操作: 1 #include 2 using namespace std; 3 4 class Point{ 5 public: 6 int x; 7 int y; 8 Point(int _x,int _y):x(_x),y(_y){ 9 }10 11 Point op... 阅读全文

posted @ 2014-03-13 22:36 旭东的博客 阅读(4421) 评论(0) 推荐(1) 编辑

2014年3月12日

C++构造函数、析构函数、虚析构函数

摘要: 1.构造函数 C++中的构造函数是用于初始化类的各种变量以及分配资源等。主要的注意事项是: (1)在继承关系中先初始化父类对象后初始化子类对象。 (2)在一个类中按照变量的声明顺序,对类中的变量进行初始化。 (3)初始化过程中,可以使用已经被初始化的对象去初始化其他的对象。2.析构函数 析构函数与构造函数作用相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。 析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。 调用顺序与构造函数正好相反,先析构子类(释放子类资源),在析构... 阅读全文

posted @ 2014-03-12 21:21 旭东的博客 阅读(3174) 评论(1) 推荐(0) 编辑

2014年3月8日

正则表达式贪婪与非贪婪模式

摘要: 之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab.*c"; 贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪 阅读全文

posted @ 2014-03-08 11:28 旭东的博客 阅读(160289) 评论(7) 推荐(4) 编辑

2014年3月7日

GPGPU OpenCL 获取设备信息

摘要: 在使用OpenCL编程中,需要对GPU设备的底层理解,这样才能更好的进行代码优化。比如计算单元CU数量,每个CU的执行单元PE数量,每个CU中的共享内存大小等等。只有了解了这些才能更好的使用共享内存,设计核函数的运行参数等。本文:http://www.cnblogs.com/xudong-bupt/p/3586050.html1.clGetDeviceInfo OpenCL使用clGetDeviceInfo函数获取设备具体,函数原型如下: cl_int clGetDeviceInfo ( cl_device_id device, //设备id号 cl_device_info... 阅读全文

posted @ 2014-03-07 12:11 旭东的博客 阅读(9197) 评论(2) 推荐(1) 编辑

2014年3月6日

GPGPU OpenCL编程步骤与简单实例

摘要: http://www.cnblogs.com/xudong-bupt/p/3582780.html1.OpenCL概念 OpenCL是一个为异构平台编写程序的框架,此异构平台可由CPU、GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。 OpenCL提供了两种层面的并行机制:任务并行与数据并行。2.OpenCL与CUDA的区别 不同点:OpenCL是通用的异构平台编程语言,为了兼顾不同设备,使用繁琐。 CUDA是nvidia公司发明的专门在其GPGPU上的编程的框架... 阅读全文

posted @ 2014-03-06 17:37 旭东的博客 阅读(26264) 评论(0) 推荐(1) 编辑

去掉linux 系统vi中出现^M字符的方法

摘要: ^M符号是windows系统下的換行符,在windows下的文本通过bin模式ftp上传到了unxi空间出现的。在test.txt文件中有如下内容: eeesdgtdfg dfgdfgfdgfd ^M ineesert into pusfdgdfgfd)ff;^M adwwfdfed adfdsdfsfdsf.^M在命令模式下运行命令 :%s/^M//g 回车注意:里面的^M 必须是同时按 Ctrl+V+M ,表示回车。不是直接输入 ^M,也不是粘帖复制。命令完成后,用:x 保存退出后,再次用vi打开就全部被替换掉了。 阅读全文

posted @ 2014-03-06 15:23 旭东的博客 阅读(16591) 评论(0) 推荐(1) 编辑

2014年3月1日

OpenMP 线程互斥锁

摘要: OpenMP是跨平台的多核多线程编程的一套指导性的编译处理方案(Compiler Directive),指导编译器将代码编译为多线程程序。多线程编程中肯定会涉及到线程之间的资源共享问题,就可以使用互斥锁,就是只有获得互斥锁的线程可以执行,其他线程阻塞。1.OpenMP中的互斥锁函数 void om... 阅读全文

posted @ 2014-03-01 11:30 旭东的博客 阅读(9341) 评论(0) 推荐(0) 编辑

CUDA使用Event进行程序计时

摘要: GPGPU是众核设备,包含大量的计算单元,实现超高速的并行。使用CUDA在nvidia显卡上面编程时,可以使用CUDA提供的Event进行程序计时。当然,每种编程语言基本都提供了获取系统时间的函数,如C/C++/Java 程序计时功能函数Event可以统计GPU上面某一个任务或者代码段的精确运行时间。如下面的程序实例(CalTime.cu): 1 #include 2 #include 3 4 //__global__声明的函数,告诉编译器这段代码交由CPU调用,由GPU执行 5 __global__ void mul(int *dev_a,const int NUM) 6 { 7 ... 阅读全文

posted @ 2014-03-01 09:27 旭东的博客 阅读(15266) 评论(3) 推荐(0) 编辑

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 24 下一页

导航