我在基于intel icc / icpc编译器的C ++项目上工作了很多,默认情况下,它使用了令人印象深刻的矢量化库svml。
我最近也看到anaconda现在使用来自intel MKL(数学核心库)的优化。
所以我的问题是:
是否有现有版本的anaconda使用intel svml(短矢量数学库)编译,可以大大提高性能?
答案 0 :(得分:1)
英特尔编译器的矢量化工具可以隐式使用英特尔SVML。我不知道Python现在直接使用SVML,Intel is working将所有可能的Intel Performance Libraries绑定到性能关键的Python模块(如Numpy / Scipy),并使用启用了矢量化的英特尔编译器编译它们。
这些模块现在可在Intel channel的anaconda.org上获得(目前处于测试版)。
还有Intel VML库,它推广SVML以使用更长的矢量/数组,它已经是used to accelerate Numexpr。
#iamintel
答案 1 :(得分:1)
使用带有正确参数的正确软件包,您可能会从中受益。如果您使用numba并且安装了icc-rt,则可以{现在使用)英特尔SVML,详细信息on this benchmark(为完整性起见,请在下面复制)。
基准本身是大型数组的平方根之和。
$fullDiffs = array_merge(array_diff($current, $new), array_diff($new, $current));
foreach($fullDiffs as $i => $id){
if(in_array($id, $current) && in_array($id, $new)){
// keep it
}
if(in_array($id, $current) && !in_array($id, $new)){
// remove it
}
if(!in_array($id, $current) && in_array($id, $new)){
// add it
}
}