Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 如何定位MKL抛出的zgemm错误?_Fortran_Intel Mkl - Fatal编程技术网

Fortran 如何定位MKL抛出的zgemm错误?

Fortran 如何定位MKL抛出的zgemm错误?,fortran,intel-mkl,Fortran,Intel Mkl,我有一个很大的Fortran代码,对于一些计算,我得到了这个标准: Intel MKL ERROR: Parameter 13 was incorrect on entry to ZGEMM 我试图检查我最常见的ZGEMM的ldc参数,但我不可能手动检查所有这些参数。有没有办法触发错误而不仅仅是警告,这样我就可以找到位置,甚至可能得到一个堆芯转储?我不明白,你得到的是一个错误,而不是警告。你到底收到了什么?完整输出是什么?在调试器中,您可以在任何想要的位置创建条件断点。请注意,MKL内部构件可

我有一个很大的Fortran代码,对于一些计算,我得到了这个标准:

Intel MKL ERROR: Parameter 13 was incorrect on entry to ZGEMM

我试图检查我最常见的ZGEMM的ldc参数,但我不可能手动检查所有这些参数。有没有办法触发错误而不仅仅是警告,这样我就可以找到位置,甚至可能得到一个堆芯转储?

我不明白,你得到的是一个错误,而不是警告。你到底收到了什么?完整输出是什么?在调试器中,您可以在任何想要的位置创建条件断点。请注意,MKL内部构件可能仅用于组装。切换到参考LAPACK进行调试可能很有价值。@VladimirF我认为OP试图区分一个错误,该错误通过可选的内核转储中止代码,另一个错误在没有有用信息的情况下停止——他称后者为“警告”,这不是最好的词。。。但我同意,可能最简单的方法是编译引用blas,将错误处理程序(xerbla.f)中的STOP更改为强制核心转储的内容,并链接到该内容。也就是说,如果MKL提供某种选项来实现这一点,那就太好了。只是一个一般性的评论:我认为有某种矩阵类型作为blas,lapack的包装器是有帮助的。这样,您就不必手动调用像
zgemm
这样容易出错的函数。(例如,
m、n、k、lda、ldb、ldc
可以通过该矩阵类型进行动态计算。)预处理器在一般情况下提供帮助programming@vladimirf这是全部输出。程序正常完成,但我将这行代码数千次发送到标准输出。我基本上是在询问是否有任何环境变量导致MKL抛出错误,而不仅仅是写入标准输出。我不明白,您确实收到了错误,而不是警告。你到底收到了什么?完整输出是什么?在调试器中,您可以在任何想要的位置创建条件断点。请注意,MKL内部构件可能仅用于组装。切换到参考LAPACK进行调试可能很有价值。@VladimirF我认为OP试图区分一个错误,该错误通过可选的内核转储中止代码,另一个错误在没有有用信息的情况下停止——他称后者为“警告”,这不是最好的词。。。但我同意,可能最简单的方法是编译引用blas,将错误处理程序(xerbla.f)中的STOP更改为强制核心转储的内容,并链接到该内容。也就是说,如果MKL提供某种选项来实现这一点,那就太好了。只是一个一般性的评论:我认为有某种矩阵类型作为blas,lapack的包装器是有帮助的。这样,您就不必手动调用像
zgemm
这样容易出错的函数。(例如,
m、n、k、lda、ldb、ldc
可以通过该矩阵类型进行动态计算。)预处理器在一般情况下提供帮助programming@vladimirf这是全部输出。程序正常完成,但我将这行代码数千次发送到标准输出。我基本上是询问是否有任何环境变量导致MKL抛出错误,而不仅仅是写入标准输出。