首页 > 其他分享 >软硬件随机数对比

软硬件随机数对比

时间:2023-05-06 10:34:31浏览次数:36  
标签:std rdrand32 软硬件 t2 硬件 随机数 对比

本文对比C++中std::mt19937和硬件随机数效率。注意硬件随机数指令_rdrand32_step等属于AVX指令集。文档中说明_rdrand32_step可能会失败,失败时返回0,经过几次测试没有发现失败的情况。所以如果程序要求不严可以不管返回值。对比的结果是硬件随机数更慢。所以一般硬件随机数只产生一次用作软件随机数的种子。C++标准库中已实现了硬件随机数类,名为std::random_device。下述代码基于VS2017、OpenCV430和Qt5.9。CPU型号是Intel Core i5-7400。下面是对比所用代码:

void main()
{
    int64 t1, t2;

    uint sum = 0;
    std::mt19937 mt;
    t1 = getTickCount();
    for (int i = 0; i < 10000000; i++)
    {
        sum += mt();
    }
    t2 = getTickCount();
    qDebug() << u8"software(ms):" << (t2 - t1) / getTickFrequency() * 1000;
    qDebug() << sum;

    sum = 0;
    t1 = getTickCount();
    for (int i = 0; i < 10000000; i++)
    {
        uint x;
        _rdrand32_step(&x);
        sum += x;
    }
    t2 = getTickCount();
    qDebug() << u8"hardware(ms):" << (t2 - t1) / getTickFrequency() * 1000;
    qDebug() << sum;
}

运行输出为:

software(ms): 45.4946
544921821
hardware(ms): 1272.13
1714828820

 

标签:std,rdrand32,软硬件,t2,硬件,随机数,对比
From: https://www.cnblogs.com/mengxiangdu/p/17376321.html

相关文章

  • CUDA 的随机数算法 API
    参考自NvidiacuRand官方API文档一、具体使用场景如下是是在dropout优化中手写的uniform_random的Kernel:#include<cuda_runtime.h>#include<curand_kernel.h>__device__inlinefloatcinn_nvgpu_uniform_random_fp32(intseed){curandStatePhilox4_32_10_t......
  • KNN中不同距离度量对比和介绍
    k近邻算法KNN是一种简单而强大的算法,可用于分类和回归任务。他实现简单,主要依赖不同的距离度量来判断向量间的区别,但是有很多距离度量可以使用,所以本文演示了KNN与三种不同距离度量(Euclidean、Minkowski和Manhattan)的使用。KNN算法概述KNN是一种惰性、基于实例的算法。它的工......
  • C++11生成随机数
    一、random_device类classrandom_device{public:typedefunsignedintresult_type;//constructor构造函数explicitrandom_device(conststd::string&token="");//propertiesstaticresult_typemin();staticresult_typemax()......
  • m通过matlab对比PID控制器,自适应PID控制器以及H无穷控制器的控制性能
    1.算法仿真效果matlab2022a仿真结果如下:       2.算法涉及理论知识概要PID控制器        PID控制器(比例-积分-微分控制器),由比例单元P、积分单元I和微分单元D组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随......
  • m通过matlab对比PID控制器,自适应PID控制器以及H无穷控制器的控制性能
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要PID控制器PID控制器(比例-积分-微分控制器),由比例单元P、积分单元I和微分单元D组成。通过Kp,Ki和Kd三个参数的设定。PID控制器主要适用于基本线性和动态特性不随时间变化的系统。PID控制器的方块图......
  • 线性二自由度模型,对比carsim模型,运动学模型
    线性二自由度模型,对比carsim模型,运动学模型ID:3213626331813781......
  • Docker可视化管理工具对比(DockerUI、Shipyard、Rancher、Portainer)
    1、前言   谈及docker,避免不了需要熟练的记住好多命令及其用法,对于熟悉shell、技术开发人员而言,还是可以接受的,熟练之后,命令行毕竟是很方便的,便于操作及脚本化。但对于命令行过敏、非技术人员,进行docker部署、管理是比较头疼的,学习成本是很高的。    而市面上的可视化......
  • m基于整数序列的QC-LDPC的稀疏校验矩阵构造算法性能对比matlab仿真,对比差分序列,PEG,
    1.算法仿真效果matlab2013b仿真结果如下:  2.算法涉及理论知识概要       QC-LDPC(Quasi-CyslicLow-DensityParity-CheckCodes)即准循环LDPC码。之前介绍的LDPC码基本属于随机构造法,构造出的码性能很好,但校验矩阵具有不规律性,存在校验矩阵存储于读取困难、编码复......
  • keil5 ARM Compiler5和6的优化等级以及对比
    keil5ARMCompiler5和6的优化等级以及对比 链接:ARMCompiler6优化等级_zhuimeng_ruili的博客-CSDN博客_armcompiler6链接:对keilMdk优化等级的理解_zhuimeng_ruili的博客-CSDN博客_mdk优化等级1、ARM Compiler6优化等级    -O0:没有优化,不推荐在ARMCompile......
  • multi-label问题的不同metrics评估指标对比
    【草稿】其中阴影方框代表分子,白色空白方框+阴影方框代表分子 其中Jaccard和F1比较容易出错。分析sklearn的jaccard_score如下:'''jaccard测试'''fromsklearn.metricsimportjaccard_score,f1_score,hamming_loss,accuracy_scoreimportnumpyasnpy_true=np.......