gfortran matmul openMP
gfortran matmul openMP
gfortran (gcc-9) 是否会自动并行化 matmul()
内在函数,如果使用 -fopenmp
编译(和 运行 whith OMP_NUM_THREADS
> 1 in Linux)?如果是这样,有没有办法将其关闭?
没有应用 -fextrnal-blas
标志来为 matmul
调用并行 BLAS。
在GCC的代码中你可以很容易地看到:
https://github.com/gcc-mirror/gcc/blob/master/libgfortran/generated/matmul_r4.c
许多 Fortran 内部调用实际上是作为库 libgfortran 提供的外部函数实现的,matmul
也不例外。所有基本数值类型(及其种类)都有一个单独的 matmul
C 代码,还有各种目标向量指令集(AVX、FMA 等)的替代形式。但其中 none 显然使用了任何 OpenMP 指令。
gfortran (gcc-9) 是否会自动并行化 matmul()
内在函数,如果使用 -fopenmp
编译(和 运行 whith OMP_NUM_THREADS
> 1 in Linux)?如果是这样,有没有办法将其关闭?
没有应用 -fextrnal-blas
标志来为 matmul
调用并行 BLAS。
在GCC的代码中你可以很容易地看到:
https://github.com/gcc-mirror/gcc/blob/master/libgfortran/generated/matmul_r4.c
许多 Fortran 内部调用实际上是作为库 libgfortran 提供的外部函数实现的,matmul
也不例外。所有基本数值类型(及其种类)都有一个单独的 matmul
C 代码,还有各种目标向量指令集(AVX、FMA 等)的替代形式。但其中 none 显然使用了任何 OpenMP 指令。