C/C++ Matlab compiler vs MKL
C/C++ Matlab compiler vs MKL
通过Matlab mcc与数学内核库中发现的等效例程,作为C/c++ dll暴露的Matlab数值例程之间是否存在显着的性能差异?
我对线性最小二乘解的性能特别感兴趣,例如?gel和傅立叶变换例程。
Matlab为它调用的任何东西添加了一个层,fftw, lapack, mkl。
如果你编译一个特殊的版本,无论代码,它总是运行得更快,没有matlab开销。
如果你不知道你在做什么,使用内置库,如果你是一个老的f77黑客像我一样,我写我自己的例程,只有当我觉得懒惰或原型算法使用内置库。
对于傅里叶变换例程,我会根据使用场景推荐FFTW。FFTW针对一次准备、经常重用的场景进行了优化。因此,如果您需要计算相同类型的变换,例如在循环中进行1024 × 2000(非2的幂)变换,FFTW将更快。如果您需要计算不同的转换类型(每次都更改维度),那么MKL将更快。
FFTW的工作方式是你的软件首先调用准备例程,这可能需要几毫秒到几秒钟(你可以配置这个)来检查你的特定平台并选择最优化的例程。然后,您可以反复调用具有优化参数的转换例程。
所有其他已知的库都有固定优化,这可能对您的平台来说是最佳的,也可能不是。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 将gsl c++程序与"英特尔MKL"链接
- 完美前进使用 std::forward vs RefRefCast
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- consteval wrapper vs. source_location
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- C/C++ Matlab compiler vs MKL