简介
cuRAND 库提供的工具专注于简单高效地生成高质量的伪随机数和准随机数。 伪随机 数序列满足真随机序列的大多数统计特性,但它是通过确定性算法生成的。准随机 序列是指维点是由确定性算法生成的,该算法旨在均匀填充一个维空间。
cuRAND 由两部分组成:主机 (CPU) 侧的库和设备 (GPU) 头文件。 主机端库的使用方式与任何其他 CPU 库相同:用户包含头文件 /include/curand.h 以获取函数声明,然后链接到该库。 随机数可以在设备上或主机 CPU 上生成。 对于设备生成,对库的调用发生在主机上,但随机数生成的实际工作发生在设备上。 生成的随机数存储在设备上的全局内存中。 然后,用户可以调用自己的内核来使用随机数,或者可以将随机数复制回主机以进行进一步处理。 对于主机 CPU 生成,所有工作都在主机上完成,随机数存储在主机内存中。
cuRAND 的第二部分是设备头文件 /include/curand_kernel.h。 此文件定义了用于设置随机数生成器状态和生成随机数序列的设备函数。 用户代码可以包含此头文件,用户编写的内核随后可以调用头文件中定义的设备函数。 这允许生成随机数并立即被用户内核使用,而无需将随机数写入全局内存然后再从中读取。