BUG with Swift

最近在用Apple的Swift开发一点东西,发现OS X SDK 有个bug是关于数据同步的。
我想在键盘事件更改速度属性发现怎么改都改不对,后来一查(花了两天)发现处理键盘事件的线程和渲染器的线程的速度值完全不一样。。
他内置的游戏引擎把一个velocity的值多线程同步坏掉了(用寄存器过度优化了,在c里面我们一般用volatile解决),bug我已经报给了Apple但是这个bug引起了我一些问题。

类脚本语言在遇到这种问题的时候应该怎么解决比较好,因为我能想到的有三种办法:
一是重做底层的线程同步,但是平衡访存压力和过度优化,这个 好像难度很大吧
二是添加volatile关键词,但这样似乎破坏了语言的优美性。。
三是补衣服一样的暴力优化。。。。。似乎很蛋疼

无人机杂谈

平时懒惰的久了,早忘了要更新Blog,最近无人机开发过程横七竖八的东西一堆堆,还跟老板商量好了明年开发一个江浙沪一小时包邮,索性把Evernote的东西贴一些过来。过几天有时间了再聊聊PhysX和OpenGL.上面一篇骂遍全国网企的blog还没有写完。不过似乎最近有人开发翻我blog了呢

继续阅读“无人机杂谈”

CUDA简单科学运算尝试:Make It Quick and Clean!

使命召唤5中,当主角杀入丛林,寂静的只有月光,队长闻到了一丝不对劲的气息,于是告诉大兵们,

make it quick and clean!

这也差不多是并行运算编写的根本所在,快速,干净,同时一定不留1k脏内存。而且在多次的惨痛教训中浩浩发现,如果不把cuda的device程序写干净的话,你的电脑当然不会死机,cpu照常运转,只不过,屏幕别指望他再动了。

继续阅读“CUDA简单科学运算尝试:Make It Quick and Clean!”

CUDA学习与尝试:Hello,World

学习一个东西总要记下来,最近联系了实验室准备做有关等体的计算,浩浩的物理系非资深码农生涯也将进入正轨。万事开头难,当然从构架走起,开始学习CUDA,第一步使用CUDA重构以前做过的建议科学运算算例,诸如有限差分解热流啦,快速傅里叶变换啦,多体运动模拟啦,哈密顿原理模拟啊,以及完成计算物理作业。然后在CFD的实践中全部采用CUDA构架。

继续阅读“CUDA学习与尝试:Hello,World”