求一个可在kernel中由__global__和__device__调用的真随机数生成函数

kernel中无法调用Host函数,也就是说rand()和random()等数学库中的随机数生成函数都不能在global或device上用……
初学日浅,求高手帮忙写个能在kernel里调用的 int Random(int min, int max); 产生min~max区间的随机数,最好生成数的随机性大一些~~急用!
谢谢!!!

记得有本书叫并行程序设计的,有中文版的,陆什么达翻译的,中间有一节和很多引用的论文有并行随机数生成的内容,或许对你有用。

[ 本帖最后由 yyfn风辰 于 2010-3-1 22:43 编辑 ]

仔细看看,题目吓我一跳!什么叫真随机数啊?

可以使用kernel里面的clock的cycle来做因子,做随机数的生成~

[

同样表示震惊~~~ :slight_smile:

.

External Media

开源图形处理器体系结构论坛(OpenGPU论坛) http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community图形开源社区),聚焦领域(focus domain)包括:
* GPU Architecture(图形处理器体系结构).
* Graphics Algorithm(图形算法).
* GPGPU Programming (面向通用的图形处理器编程).
* Open Source Rendering Engine(开源渲染器).
* Open Source GPU Simulator/RTL Implement(开源GPU模拟器).

[ 本帖最后由 OpenGPU 于 2010-3-11 09:23 编辑 ]

[

clock生成随机数这个不大靠铺了,我门考虑到了这个情况,正在着手做“真随机数“,利用GPU内置的数字差分温度传感器来作为随机数的硬件接口。效果不是一般的好。

.

External Media

开源图形处理器体系结构论坛(OpenGPU论坛) http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community图形开源社区),聚焦领域(focus domain)包括:
* GPU Architecture(图形处理器体系结构).
* Graphics Algorithm(图形算法).
* GPGPU Programming (面向通用的图形处理器编程).
* Open Source Rendering Engine(开源渲染器).
* Open Source GPU Simulator/RTL Implement(开源GPU模拟器).

[ 本帖最后由 OpenGPU 于 2010-3-11 09:24 编辑 ]

网上有一个基于Unix中的rand48()的GPU版本,叫gpu_rng,你参考一下。

[

这个是王道
不知道GPU估计能不能直接在kernel里用这些寄存器的东东
估计有难度

哈哈哈
我是来打酱油的
学习学习

[

.

External Media

开源图形处理器体系结构论坛(OpenGPU论坛) http://www.opengpu.org/bbs/

OpenGPU Graphics Open Source community图形开源社区),聚焦领域(focus domain)包括:
* GPU Architecture(图形处理器体系结构).
* Graphics Algorithm(图形算法).
* GPGPU Programming (面向通用的图形处理器编程).
* Open Source Rendering Engine(开源渲染器).
* Open Source GPU Simulator/RTL Implement(开源GPU模拟器).

http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MTGP/index.html

有人做了····
不过什么是真随机数??

[ 本帖最后由 jocover 于 2010-3-12 17:14 编辑 ]