今天把之前在ubuntu下写的pytorch的cuda扩展放到win10下面编译,记录一下出现的几个问题。
- 用vs的编译工具编译的时候提示error不支持预处理指令“warning”:
fatal error C1021: 无效的预处理器命令“warning”
根据pytorch论坛上的反馈,VS的版本太旧有可能是原因,但升级至最新版本VS后依然出现这个问题。事实上,MSVC并不支持warning预编译指令,这一错误的解决方法比较tricky,直接在pytorch源码中注释掉这一行预编译指令即可。
- 在后续编译cu文件时出现不支持的编译器版本问题,查看相关cuda源码即可发现cuda9.0源码限制了MSVC编译器的版本,根据pytorch论坛上的建议,VS一定要安装15.3版本。