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