现在的位置: 首页 > 综合 > 正文

学习并行编程

2018年02月06日 ⁄ 综合 ⁄ 共 1191字 ⁄ 字号 评论关闭

今天看到bulletphysics支持opencl,支持苹果的simd。。。。。。

对于多线程一直停留在win32的几个API上,到了vista时代的RWLock,interlock函数族都不甚了解,也没有写过多线程程序。现在看来比较迫切了。移动端和web硬件发展太快了!心慌慌。整理下思路先。

先是CPU端的。

首先是PSM的四核,会有至少2个子线程,因此c#的多线程库必须掌握。

其次是webcl,async javascript,涉及到ajax和webworker,涉及到资源的读取和后台数据处理,不必说必须掌握。

c++的话有c++11的多线程,这涉及到WP8是否兼容,应该没问题吧。

Android和ios自不必说,这两个平台ios还有点了解,Android小白,而且Android貌似4核机子很多啊。记得objective-c好像是block的,Android界面是否也用java多线程?只掌握c++还是不够。

好在flash没有。

然后是GPU的。

directx的多线程渲染是cpu端的,不过涉及到gpu渲染,所以就放到gpu来说了。光听了微软的一个音频,看了ppt,唉,我军还是刀耕火种,敌人已经飞机大炮了。。。。。延迟渲染+多线程渲染。。。。。。

opengl4.x的多线程也不必说,看到一堆atom都不知道那些事干嘛的怎么使用。先从openglinsight和spec中寻找吧。

再之后是GPU计算

好像opengl4.x也有了compute stage,不管怎样还有opencl。对了,好像webgl后来也要加入opencl。

用opencl或者directxcompute,应该可以涵盖所有了。对了,unity4 支持directx compute shader。

微软的amp,ppl以及cuda,amd的加速算法因为和硬件操作系统绑定,不喜欢。

最后是脚本的协同程序。还好。

比如c#和lua。

看了下opengles3.0 的spec,果然是有Sync Objects and Fences,而mali624都有了,三年后应该主流了。

昨天看了下wp8的directx,虽然是directx11的set,还是比较少的,没有那么多asynchronous和compute,tessalate,稍稍心安。

最后列个计划,按如下顺序学习其中的并行技术:

c++11,c#,webworker,directx compute shader,dx11,opengl4.x,opencl

以及并行算法和并行设计模式,这些东西是共通的。

我努力学习想追赶技术的潮流,结果发现自己越来越远!要么减少知识面,要么咬牙坚持。想想自己3年前还不知3d为何物,那时只会更难。。。。。。继续咬牙吧。和时间赛跑。

发点牢骚心里舒服了些。就算微软将来的ie10最终不支持webgl我也不会骂娘。移动,互联, 游戏,本来就不容易。

以此作为并行的第一篇。

抱歉!评论已关闭.