<p>There is a paper available here (<a href="http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120" rel="nofollow noreferrer">http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120</a>) and (non-paywalled version) here (<a href="https://arxiv.org/abs/1707.02212" rel="nofollow noreferrer">https://arxiv.org/abs/1707.02212</a>) that describes how to use Intel Secure Key, which is a cryptographically secure random number generator implemented on-chip.  It can be accessed via RdRand and RdSeed instructions.</p>

<p>But the author seems to say you should go for implementing it in C/C++ instead of Python.  The rdrand python module runs about 100x slower than the Python default random number generator, and about 1000x slower than the one in Numpy (paper section 5.2).</p>
using the hardware rng from python
<p>Are there any ready made libraries so that the intel hardware prng (rdrand) can be used by numpy programs to fill buffers of random numbers?</p>

<p>Failing this can someone point me in the right direction for some C code that I could adapt or use (I use CPython and Cython with numpy so the bare minimum wrapper shd be enough).</p>

<p>The random generators I want are uniform random numbers between [0,1).</p>