本帖最后由 挨T虫穴 于 2011-7-15 12:19 编辑
谁主沉浮 OpenCL与CUDA架构深入解析
ZDNet软件频道 时间:2009-11-26 作者: | IT168网站OpenCL实际上是针对异构系统进行并行编程的一个全新的API,OpenCL可以利用GPU进行一些并行计算的工作。实际上CUDA最主要的包含两个方面:一个是ISA指令集架构;第二硬件计算引擎;实际上是硬件和指令集。
【IT168 文档】前言最近,Khronos公布了OpenCL(Open Computing Language)的第一个测试版本,一经发布便在通用计算领域掀起来轩然大波!OpenCL是由苹果公司发起,业界众多著名厂商共同制作的面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境。便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。那么OpenCL与NVIDIA的CUDA架构是什么关系,是否是外界认为的竞争关系?目前众多的通用计算标准中,比如NVIDIA的CUDA、Khronos的OpenCL、AMD的Stream,CAL、Brook+、微软下一代的Computer shader等,他们之间有什么异同,看完这篇文章,相信你就会有一个大概的了解……OpenCL来了!Khronos是一个开发组织,著名的OpenGL就是出自Khronos之手,Khronos有很多厂商组成,OpenCL工作组同时也是OpenCL的一个协调机构,来负责制定OpenCL的规格、架构等等各方面。业界最主要的和图形或者和计算相关的厂商都是Khronos的成员。OpenCL实际上是针对异构系统进行并行编程的一个全新的API,OpenCL可以利用GPU进行一些并行计算的工作。我们知道,图形里面有很多API,比如OpenGL是针对图形的,而OpenCL则是针对并行计算的API。 OpenCL开发人员可以利用GPU和CPU的计算能力,把GPU和CPU异构的系统运用在很多并行计算的领域。OpenCL对于业界来说是非常重要也是非常好的一个标准,这样业界有一个共同的标准可以利用GPU的强大计算能力,然后应用在图形以外各种各样的并行计算方面。NVIDIA公司的副总裁Neil Trevett是OpenCL工作组的主席,引导很多OpenCL的开发,NVIDIA公司很多员工都在参与这项工作。OpenCL最早由Apple公司提出的,OpenCL发起NVIDIA就和Apple公司进行非常紧密的合作。OpenCL开发的过程中,技术平台均为NVIDIA的GPU,实际上OpenCL是基于NVIDIA GPU的平台进行开发的。另外OpenCL在大概两个多月以前进行了第一次演示,也是运行在NVIDIA的GPU上。对于Apple公司来说是把GPU计算当成一种未来的趋势,他们非常重视OpenCL,在新一代的产品里面选择了最适合于OpenCL运行的平台。所以新一代苹果的笔记本电脑全都采用了NVIDIA的平台,不管是MacBook Pro还是MaBook。实际上这也是从另外一个方面证明NVIDIA的GPU对于OpenCL的支持。OpenCL与CUDA并非敌对关系很多人对什么是CUDA可能还有一些疑虑,并没有搞清楚CUDA到底是什么。实际上CUDA最主要的包含两个方面:一个是ISA指令集架构;第二硬件计算引擎;实际上是硬件和指令集。 也就是说我们可以把CUDA看做是与X86或者cell类似的架构,但是是基于是GPU,而不是传统的CPU。这个其实很好理解,把它和传统的和CPU的架构比较下相信就更容易理解,传统X86是包含一套指令集和执行X86各种各样的CPU,对于CUDA也是一样,CUDA有一套指令集ISA,还有执行指令集各种各样的硬件引擎。CUDA到目前为止包含了一个C语言的编译器,当然CUDA架构还可以支持其他的API,包括OpenCL或者DirectX,同时CUDA还会有其他的语言,包括Fortran、Java、Python等各种各样的语言,可以说CUDA架构是原生的,专门为计算接口而建造的这样的一个架构,这种硬件架构包括指令集都是非常适合于这种并行计算,为异构计算而设计的一整套的架构。OpenCL与CUDA的关系上图很好的解释CUDA和OpenCL的关系,他们并不是冲突关系,而是包容关系。OpenCL是一个API,在第一个级别,CUDA架构是更高一个级别,在这个架构上不管是OpenCL还是DX11这样的API,还是像C语言、Fortran、DX11计算,都可以支持。作为程序开发员来讲,一般他们只懂这些语言或者API,可以采用多种语言开发自己的程序,不管他选择什么语言,只要是希望调用GPU的计算能,在这个架构上都可以用CUDA来编程。CUDA编程的道理和CPU的编程很类似,比如有了X86的指令集,又有X86各种各样的CPU,那么我们只需要对这个指令集编程即可。X86架构上有各种各样的开发工具,当然也有C语言,Fortran语言,Python语言,Java或者以前的Pascal语言,不论你使用什么语言进行开发,最后还是在X86的架构上执行。CUDA也是一样,有了CUDA的指令集,有了支持CUDA的硬件,我们就可以采用不同的途径来进行开发,比如可以采用OpenCL或者DirectX这样的API,也可以用C语言或者Fortran或者Java开发,最终都可以在CUDA架构上运行。http://soft.zdnet.com.cn/software_zone/2009/1126/1526015.shtml 软件频道
[查看全文]
本来是宅吧里发的一教程贴,见坛子里东西不多拉过来充数吧
http://tieba.baidu.com/f?kz=1133377194 (原帖地址)
(不知道能加个【底层】分类么。。。)
好的 新头像看到了吧 个人感觉这个有创意多了
那么 这一课源于一件非常不幸的事,本宅在重装系统时忘记拔出移动硬盘,结果ghost把移动硬盘识别成了C盘(USB-HDD的引导形式。。。),然后把俺的移动硬盘格了两次,装上了win xp。。。
数据全找不到了,文件表不是损坏,是直接被抹掉了
然后,用了5、6款数据恢复软件均无效。即使是反格式化恢复也不行。的确恢复出了一堆文件,结果都是装xp时产生的临时文件。
最后,通过一些手段,作为神一样存在的本宅用16进制编辑软件winhex和好压两款跟数据恢复风马牛不相及的软件把丢失的数据找回了95%(剩余5%被win xp冲掉了)
那么这一课 我就把这个神一样存在的方法传授给大家。
那么 前提呢先说一下
移动硬盘的大小是150GB 80GB的数据丢失了。
我的电脑用的500GB的硬盘,F盘剩余160GB空间。
打开winhex,然后直接编辑被抹掉的移动硬盘
Tools=>Disk Tools=>Clone Disk
出现如图的对话框
这样子,把镜像做到F盘上去(保证该盘是NTFS,Fat32最大只支持4GB文件。)
之所以要先做一个镜像,是为了方便编辑,毕竟winhex做数据剪切不是他的长项,而且移动硬盘的速度较慢。选OK后慢慢等吧。。。
另外,镜像做到60%时就可以停下了,因为我们只用过80GB的空间,后面的70GB是空的,做镜像的话会拖时间。
大约3个小时后,本宅的F盘上出现了一个80GB的文件。
可以看到这个文件灰常灰常大
然后可以拔出移动硬盘了,用winhex打开这个AIGO.DTA,然后会出现和移动硬盘相同的数据。
事实上,我们的数据并没有丢失,我们只是丢失了保存数据的位置,所以可以用搜索文件头的方法找到它。
比如说要找rar类型的文件,我们可以新建一个压缩包,用记事本查看它:
Rar! 蝎s 6檛 €+ I'
所以说Rar!就是rar文件的文件头。
在winhex中搜索Rar!,过一会会出现几百个结果,去除掉一些巧合后(比如说乱码中偶然出现的rar!字样),去到筛选出来的地址,可以看到rar文件的迹象:
记下它前面的地址,转换成10进制,这就是它所在的字节数。
关闭winhex,右键AIGO.DTA(虽说一般数据文件用DAT,但本宅标新立异就用DTA。。。),添加到压缩文件,压缩方式选存储,分卷大小就是这个十进制字节数,然后确定,让他慢慢压缩吧
大约又过了三个小时后,你回来一看,会发现F盘变红了(差点满了),出来一大堆压缩分卷。[查看全文]因为我们选择的是存储,所以winRar或好压不会把它压缩,只起到了文件分割的作用。之所以我用好压不用专门的文件分割器,是因为它们普遍采用了一个只能最大分割4GB文件的函数,因为贮存文件大小用的变量是两个Long型,最大只能表示4GB。。。
选择第二个压缩分卷,用winhex打开,然后把文件头去了,保存成rar格式再打开,你会惊奇的发现,数据回来了!
于是用此法,我慢慢地恢复出了一些曾经花了很大劲下到的传说中到哪下都有毒的破解版软件还有3DS MAX、Google earth pro。。。
数据关系包括 线性关系、非线性关系(树关系、图关系)。
线性关系(线性结构)的特点是数据元素之间是一种线性关系,在一个线性表中数据元素的类型是相同的,在数据结构中有线性表,栈,队列,双队列,数组,串。在实际问题中线性表的例子是很多的,如一个字符串也是一个线性表:表中数据元素的类型为字符型; 学生信息表是一个线性表:表中数据元素的类型为学生类型,等等。
综上所述,线性表定义如下:
线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,通常记为:
(a1,a2,… ai-1,ai,ai+1,…an)
其中n为表长, n=0 时称为空表。
表中相邻元素之间存在着顺序关系。将 ai-1 称为 ai 的直接前趋,ai+1 称为 ai 的直接后继。而 a1 是表中第一个元素,它没有前趋,an 是最后一个元素无后继。
树关系与图关系都是非线性逻辑结构,一个结点可能有多外前趋和后继。
树的每个分叉点称为结点,起始点为根结点,任意两个结点间的连接关系称为树枝,结点下不有有分枝为树叶。结点的前趋为该结点的“双亲”(根结点、父结点),结点后继为该结点“子女”结点,同一结点为“兄弟”结点。
图是由顶点的无穷非空集合和顶点之间边的集合组成。
[查看全文]
Hibernate 4 beta3 发布了!
Hibernate是一种Java语言下的对象关系映射解决方案。它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java开发中最为流行的数据库持久层框架,现已归JBOSS所有。
它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate不仅负责从Java类到数据库表的映射(还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短的手动处理SQL和JDBC上的开发时间。
该版本的新特性:
- 允许实体模式信息运用到逻辑模型中。
- 支持重新访问EntityBindingState。
- Metamodel changes in preparation for integrating metamodel into persisters。
下载地址:http://sourceforge.net/projects/hibernate/files/hibernate4/4.0.0.Beta3/
[查看全文]每一个成功的背后,都会看到一些失落的影子,甲骨文于2010年1月通过收购Sun获得了Java编程语言,但显然没有获得多大的利润,而谷歌利用Android布局获得了大量利益和市场,甲骨文最新提交的文件显示,该公司要求谷歌支付9亿美元至14亿美元赔偿,并分享谷歌Android手机操作系统业务15%的广告收入。显然谷歌的第一反应就是:不行,这只不过是你想收回部分收购JAVA的成本而已,根据甲骨文单方面的说法,Android所谓的JAVA侵权给甲骨文造成了高达60亿美元的损失。 目前还不知道后事会如何演绎,谷歌拿出一笔钱来和解的可能性大点,但谁知道呢,或许甲骨文只是想在股价上有所表现。
[查看全文]
该贴已经同步到 RadiationTeam的微博
本帖最后由 血のばら 于 2011-7-8 19:56 编辑
通过“QQ登录”,用户能使用QQ帐号一键登录接入网站,大大降低了用户注册、登录的门槛,借助庞大的QQ用户群,给第三方网站带来更多新用户。已登录用户还可以将在第三方网站发布、分享的信息即时同步到QQ空间,使网站内容通过好友关系得到进一步的传播,从而提升网站的访问量和用户数。
; ?/ D! `" T" T3 @5 n/ P, ?
项目地址:http://open-qq.googlecode.com
下载:http://open-qq.googlecode.com/files/connect-1.2-all-in-one.zip
#前提准备:0 \' j* Q: C3 h( n0 }
在开始搭建 开发环境之前,您必须掌握如下知识或技能:#开始搭建:i)能够使用 Java 开发 应用程序;
) @7 H1 Q# \9 L9 E& j0 Q" x& |5 P( K4 V
ii)对OAuth、QQ开放平台有一定了解; ?+ g9 B" [& N
0 U6 p1 A. l" @$ s( P
iii)熟悉 Maven2+,SVN;
Connect是使用Maven2进行的项目构建,所以并不依赖于任何一款Java IDE,只要支持Maven的IDE都可以进行调试和开发。NetBeans ?配置i) 工具->选项->其他->Maven->外部&Maven主页->浏览 把 Maven 的路径加上
ii)用 SVN 把项目迁出 http://open-qq.googlecode.com/svn/trunk/demo 7 L7 W! D' Q% y4 V5 M, w
0 @& c l( r0 G8 Q
ii)运行项目。右键项目,定制-> jetty:run
Eclipse配置#启动配置" w8 r. |6 j/ j2 p7 x+ X
i)安装 Maven 的插件:The Maven Integration for Eclipse
% o5 T7 {% }" T
ii)Window->Preferences->Maven->installations->Add 把 Maven 的路径添加上 & `+ K3 X k; m% r9 Z# X t
iii)用 SVN 把项目迁出 http://open-qq.googlecode.com/svn/trunk/demo ; l, ] Y# f3 o- [- Y* K
; X; z& B7 g3 s" I; N% ^, H# i
iv)win+R->cmd进入命令行 进入项目所在目录(e.g:D: 回车;cd foldername 回车 etc...) 你如果成功进入会发现pom.xml,运行命令mvn eclipse:eclipse ,静静等待,Build成功即可 v)在Eclipse中右键项目,选择刷新(refresh) r* @( g' [1 _9 T# M
vi)在Eclipse中右键项目,选择Configure --> Convert to Maven Project
vii)运行项目。右键项目,run as maven build... --> Goals: jetty:run 5 C( P( x# y, k1 B
前提准备,已经申请到QQ互联的APP_ID, APP_KEYi)在demo中找到src/main/resources/connect.properties这个 文件#本地测试- e9 n/ e5 `7 q. o# e" m
ii)正确填写APP_ID, APP_KEY, OAUTH_CALLBACK
前提准备,了解本地Host文件的作用i)找到C:\WINDOWS\system32\drivers\etc\hosts这个文件3 e: D* R, a, |6 h' N% B3 U1 E- h: R+ ?
ii)用文本方式打开
1 H, P7 A$ z4 i6 _' T; A0 N
iii)增加一行:127.0.0.1 wwww.domain.com
0 w J% w7 [! D2 T
iv)启动本地服务器
8 ]) g0 ^4 W& G" _! C( _+ D
v)启动浏览器访问http://wwww.domain.com/projectname1 M9 M1 |* `+ b! C! G
: Y! e$ M8 r+ s; r. s
[查看全文]
该贴已经同步到 血のばら的微博
投递人 itwriter
Java 7 是 Java 即将发布的一个全新版本,正式版(GA)将于本月28日发布,关于 Java 7 的新特性请看这里,你也可以从这里下载到开发者预览版本。
这是一个 Java 重大的事件,在 Oracle 的支持下,来自印度浦那(Pune)Java组将举办一个巨大的发布会来庆祝 Java 7 的发布。该发布会可免费参加,可通过下面地址报名参加(如果你正好在印度的话 )
http://event.ayojak.com/event/java-7-launch-pune-india
而该发布会的发言人好像是一个华人,但我相信发布会上他不会讲中文
[查看全文]
该贴已经同步到 血のばら的微博