尝试pytorch2.0

pytorch2.0,号称可以缩短训练时间30%到75%,着实让人感到兴奋。花了几个小时尝试2.0版本,中间发现一些问题,记录下来。

1.按照pytorch官方教程进行,我是cuda11.7,所以

 pip3 install numpy --pre torch torchvision torchaudio --force-reinstall --extra-index-url https://download.pytorch.org/whl/nightly/cu117

(一开始,用的 Mark Saroufim Blog的方法。安装不成功。)

2.安装成功后按照教程,改一下模型:

  for n in self.net_list:
      net = getattr(self,n)
      net.cuda(gpu_id)
      if config['using_PT2']:
         net = torch.compile(net,backend="inductor")
         # net_opt = torch.compile(net,backend="inductor")
      setattr(self,n,net)

官方说其inductor的backend是最优的。

3.编译,中间碰到报链接错误的-lcuda 无法找到。看了一下我的系统是ubuntu18.04,libcuda.so安装在/usr/local/cuda/lib64/stubs下。把libcuda.so 拷贝到/usr/local/lib下面,就好了。也尝试了修改/etc/ld.so.conf.d/下的,增加/usr/local/cuda/lib64/stubs/,但是会导致cuda库异常,nvidis-smi报错。

4.实际测试,可能我的模型比较复杂,实际测试只缩小了10%不到的训练时间。用的是rtx3090,单卡。跑的卷积神经网络。我的网络分成了不同的子模型。可能是这个的原因?不想改代码。就先这样吧。

你可能感兴趣的:(pytorch,人工智能,python)