在使用AMD处理器调用MKL库的zgelss函数求解高阶问题时,可能会遇到卡死的问题。 这个问题可能由AMD平台的MKL引起的,尤其是在不同的机器或平台上运行时,可能会出现兼容性问题。
首先,确保你的Windows系统已经更新到最新版本,并且在设置中启用了Microsoft的KB4262457补丁,以防止各种兼容性问题。在Windows搜索栏输入“KB4262457”,点击链接下载并安装补丁。
如果问题仍然存在,可能是因为你使用的软件与MKL版本不兼容。可以尝试升级MKL的版本或者寻找一个支持你使用的版本的MKL源码。在命令行中输入以下命令来检查MKL版本:
Text:mkl --version
如果MKL版本太旧,可能需要升级它。可以在GitHub上找到MKL的最新版本并更新。
此外,关闭高精度事件计时器(HPET)可能有助于解决卡顿问题。以管理员身份运行命令提示符,按顺序输入并运行以下指令:
Text:
bcdedit /set useplatformclockfalse
bcdedit /deletevalue useplatformclock
执行完后出现“操作成功完成”即可。
最后,确保在启动终端时自动设置环境变量。编译命令例子如下:
Text:ifort myprog.f90 -L$MKLPATH -I$MKLINCLUDE -lmkl_intel -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
对于使用OpenMP的库,运行编译好程序前在Shell里面设置核心数目:
Text:set OMP_NUM_THREADS=<number of threads to use>
这些步骤可以帮助你更好地配置和使用MKL库,从而避免在使用AMD处理器调用MKL库时遇到的问题。