Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中使用Haswell CPU(英特尔核心处理器(Haswell,无TSX))的触发器_Python_Linux_Perf_Flops - Fatal编程技术网

Python中使用Haswell CPU(英特尔核心处理器(Haswell,无TSX))的触发器

Python中使用Haswell CPU(英特尔核心处理器(Haswell,无TSX))的触发器,python,linux,perf,flops,Python,Linux,Perf,Flops,我需要测量一下我所做的Python程序的失败率 根据我在互联网上的发现,似乎有两种主要选择: 在程序中包括计数器(我理解,如果程序非常简单,并且您能够访问非常原子化的计算,那么这可能是有意义的) 使用访问CPU计数器的库来推导触发器的数量。像这个: 遗憾的是,安装失败了,除此之外,网站还明确表示不支持Haswell CPU,因为它们没有用于浮点计算的计数器。原来我的服务器有这个CPU。因此我被困在那里 尽管如此,我还是在考虑包含一个系统调用来使用perf(可能是os.system(“perf--

我需要测量一下我所做的Python程序的失败率

根据我在互联网上的发现,似乎有两种主要选择:

  • 在程序中包括计数器(我理解,如果程序非常简单,并且您能够访问非常原子化的计算,那么这可能是有意义的)
  • 使用访问CPU计数器的库来推导触发器的数量。像这个:
  • 遗憾的是,安装失败了,除此之外,网站还明确表示不支持Haswell CPU,因为它们没有用于浮点计算的计数器。原来我的服务器有这个CPU。因此我被困在那里

    尽管如此,我还是在考虑包含一个系统调用来使用perf(可能是os.system(“perf--event-event-for-for-flops”))

    问题是我不知道应该监视什么样的事件来获取FLOPS信息(假设有一个,基于“python papi”库,这似乎不太可能)

    我列出了所有可能发生的事情,但我完全不知道。我试图在互联网上找到一些信息,但毫无帮助

    关于什么是要监控的适当事件(如果有)有什么想法?或者如何做到这一点,而不需要在代码的非常低的级别手动添加计数器,这对于我来说是不可行的

    请在此处找到活动的完整列表:


    当你说浮点运算时,你指的是每秒的浮点运算,对吗?这很可能是一个处理器拱门。具体的事情<在linux上,code>perf list(可能需要sudo)可以告诉您可以捕获什么类型的事件以及linux上的名称。然后,您可以使用
    perf stat-e
    获取这些特定性能计数器的值。您可能需要组合许多计数器以获得良好的结果,例如,它们可能是用于浮点加法和乘法的不同计数器。同时请记住,您在python中编写的代码是高级的,这可能会导致您的结果不准确。我手头没有Haswell,但您要查找的事件类似于
    fp\u arith\u inst\u retired.scalar
    。如果您使用的是某种向量化循环(在常规python中不太可能),那么您可能也需要查看事件。当您说FLOPS时,您指的是第二次浮点操作,对吗?这很可能是一个处理器拱门。具体的事情<在linux上,code>perf list(可能需要sudo)可以告诉您可以捕获什么类型的事件以及linux上的名称。然后,您可以使用
    perf stat-e
    获取这些特定性能计数器的值。您可能需要组合许多计数器以获得良好的结果,例如,它们可能是用于浮点加法和乘法的不同计数器。同时请记住,您在python中编写的代码是高级的,这可能会导致您的结果不准确。我手头没有Haswell,但您要查找的事件类似于
    fp\u arith\u inst\u retired.scalar
    。如果您使用的是某种向量化循环(在常规python中不太可能),那么您可能也需要查看事件。