【发布时间】:2018-02-28 00:26:48
【问题描述】:
我正在尝试分析一些调用 GEMM 进行矩阵乘法的 Fortran 代码。
我曾经使用双精度并且看到 dgemm 调用正如我所期望的那样,但现在我已经切换到单精度,我在分析器的任何地方都看不到 sgemm。
说实话,我不明白dgemm 是怎么出现的。 BLAS 库不需要用-pg 编译来创建必要的符号吗?
这是对 BLAS 库使用英特尔 MKL,对分析器使用 gprof。
【问题讨论】:
-
你的代码在哪里?你是 matmul() 吗?
-
我们确实需要一个清晰的问题陈述。哪个profiler,在哪个配置,看不到GEMM,在哪个代码。否则,我们只能在您的问题中猜测太多变量。
-
我是直接调用
sgesvd,直接调用sgemm,所以不是MATMUL。 -
我正在用
-pg和-O3编译我的代码。这会生成一个 gmon.out 文件,然后我使用gprof [EXECUTABLE_PATH]生成分析器输出。 -
你能准备一个小的minimal reproducible example,它只调用sgesvd 或sgemm 并且有这个问题吗?向我们展示有问题的 gprof 输出以及代码。
标签: fortran blas intel-mkl gprof