sdevice的神奇bug-SIGSEGV
9.3日更:
已经找到解决办法了,此处感谢某钟头
办法是在启动swb之前,加一行这个代码
export MKL_DEBUG_CPU_TYPE=5
原文
今天跑自带的示例CMOSInverter时,sdevice遇到一个奇怪的报错
具体是在.job文件里显示
17:56:59 Jun 17 2020 job 4
17:57:02 Jun 17 2020 — job 4
End Simulation section
Job failed
Error: Child process with pid ‘8882’ got the signal ‘SIGSEGV’ (segmentation violation)
gjob exits with status 1
后来经过一系列的排错,问题应该出在硬件和软件的兼容性上。
但有一个,不换硬件的曲线救国方法(感谢伟大的群友F.给的方法)。
把sdevice里面的Method=Blocked改成Method=ILS(或者Method=Super),这样就会调用ILS求解器来运算,对内存的需求小。
下面详细讲讲出错的现象:
在一个英特尔的XEON的主机上,13版TCAD,正常运行
在AMD 3500X+16GB内存的台式机 虚拟机上,16/18版TCAD,运行报错
在AMD 3500X+16GB内存的Linux系统上,18版TCAD,运行报错
在Intel i5 8代+8GB内存的笔记本 虚拟机上,18版TCAD,正常运行
所以我判断极有可能是Blocked求解器和AMD CPU的问题