说起硬件加速,最常见的是显卡硬件加速如Nvidia 的 CUDA,其实CPU 也能硬件加速程序,作为 CPU 阵营的老大,Intel 就开发了很多硬件加速库,官网罗列了5个库,下面来介绍下:
1.Intel® Math Kernel Library
就是大名鼎鼎的MKL,对很多常见数学函数提供了 CPU 级别的硬件加速,第三方数学、统计、机器学习库可以用MKL来提升运行效率,如:BLAS,,LAPACK,FFTW,NumPy, SciPy, and scikit-learn等
2.Intel® Integrated Performance Primitives
简称 IPP,利用 Intel CPU 的 SIMD、AVX2、AVX-512等指令集来加速图像处理(如图像识别)、信号处理(如语音识别合成)、加密解密(如MD5、SHA、AES)、数据压缩(如 zlib、Bzip2)
3.Intel® Threading Building Blocks
简称 TBB,提供更好的多线程编程性能和内存分配机制
4.Intel® Data Analytics Acceleration Library
简称 DAAL,用在数据科学领域, NumPy, SciPy, and scikit-learn等库可以用 DAAL 来加速
5.Intel® MPI Library
主要用在高性能计算领域,跨集群开发
以上 5 大库还是偏底层开发的,大部分用户其实希望开箱即用;譬如用这些库来加速 Numpy 还得自己在Numpy源码打上MKL 和 DAAL 库再编译来提速多麻烦,Intel 也提供了一些集成上述硬件加速库的开箱即用的工具应用,如:
1.Intel® Distribution for Python
Intel 优化过的 Python 发行版,不光 Python 本身,机器学习、统计生态常见库如NumPy, SciPy, and scikit-learn都包含了;性能有提升有多强?这里有个用户的例子来参考:
https://www.zhihu.com/question/391185825/answer/1241894822
2.Intel® C++ Compiler
Intel 优化过的C、C++编译器,据说比 GCC 更快
3.Intel® Fortran Compiler
Intel 优化过的Fortran编译器,据说能提升 40%的性能
4.Intel® Distribution of OpenVINO™ Toolkit
Intel 优化过的深度学习工具集,主要是通过优化 OpenCV, OpenCL来提升深度学习效率