【发布时间】:2013-07-11 02:48:24
【问题描述】:
我看到英特尔似乎包含了一个新的汇编函数来获取从硬件中获取的真实随机数。该指令的名称是RdRand,但在互联网上似乎只能找到少量细节:http://en.wikipedia.org/wiki/RdRand
我对这条新指令及其在 C++11 中的使用的问题如下:
RdRand生成的随机数真的是随机的吗? (每个比特都是由不相关的白噪声或量子过程产生的?)它是 Ivy Bridge 处理器的一个特殊功能吗,英特尔会在下一代 cpu 中继续实现这个功能吗?
如何通过C++11使用?也许使用
std::random_device,但如果指令可用,编译器是否已经调用RdRand?编译程序时如何判断
RdRand是否真的被调用?
【问题讨论】:
-
我会查看Intel Manual,这是他们CPU接口的权威文档。
-
它还在 Haswell 中 - 到目前为止,它看起来好像还在。
-
也许你应该接受大卫约翰斯顿的回答?
标签: c++ assembly c++11 random rdrand