为什么矢量化对Matlab程序有益?NumPy和Boost(uBLAS)是一样的吗?

zha*_*nwu 5 matlab boost numpy vectorization ublas

使用矢量化替换for循环可以显着提高Matlab程序的速度.是因为矢量化代码是并行运行的吗?

矢量化对于使用NumPy或uBLAS的程序也有益吗?

tal*_*ies 8

"矢量化"代码通常在像Matlab和numpy这样的解释环境中更快,因为矢量化版本经常(但不总是)运行预编译和优化的用C或FORTRAN编写的代码.并行执行可能会或可能不会在此中发挥作用.

在numpy中使用向量化通常会导致性能提高 - 通常是例程编译为C或FORTRAN,其运行速度比必须在解释器上运行的本机python代码快得多.numpy,主要用C语言编写,可以回避python全局解释器锁,这可以大大提高使用线程的python代码的响应能力.

  • 对于uBLAS,我认为它们指的是"矢量化"一词的不同含义,而不是用于MATLAB或numpy的矢量化代码.对于uBLAS,矢量化版本使用所谓的向量指令,即一次对多个数据进行操作的CPU指令.在Intel处理器上,这些是SSE指令. (4认同)