본문 바로가기

공부/컴퓨터

[PyTorch] 1.8 release와 함께 GPU memory fraction 이 지원됩니다. - torch.cuda.set_per_process_memory_fraction

인공지능할때 GPU 메모리를 나눠쓰고 싶어요.

Tensorflow 에서는 나눠쓰는것을 옛날부터 지원했다.

  • tensorflow에서는 1.x 대 부터 per_process_gpu_memory_fraction 를 사용해서 process당 사용할 수 있는 GPU 메모리를 지정할 수 있었다.
  • tensorflow 2.x 대 부터는 tf.config.LogicalDeviceConfiguration의 설정으로 MB 단위로 설정가능 하다. (현재는 GPU 일때만 지원)
  • 관련링크 : https://www.tensorflow.org/api_docs/python/tf/config/LogicalDeviceConfiguration

PyTorch는 없었으나, 1.8이 릴리즈되면서 가능하도록 추가 되었다.

  • 파이토치에서는 몇년전부터 텐서플로우는 있는데 왜 PyTorch에는 지원해 주지 않느냐~ 라면서 꾸준히 많은 사람들이 이슈를 제기했다.
  • 그리고 2020년 11월 18일, Pull Request를 통해서 코드가 제출 되었고, 2021년 3월 4일 PyTorch 1.8 이 릴리즈되면서 해당 기능이 추가 되었다. ( torch.cuda.set_per_process_memory_fraction )
  • 관련링크 : https://github.com/pytorch/pytorch/pull/48172/commits/ada19609a4f61cac69bd772cafd6c89471ff5253

그래서?

  • 서비스를 운영할때 좀 더 유연하게 운영할 수 있게 되었다. 비정상적인 애들은 걍 걔 혼자만 문제가 될 거고 다른애들에게는 영향을 안 줄 수 있기 때문에 ㅎㅎ.
  • 문제가 있다면, 지금까지 동작중인 애들이 PyTorch 1.8 에서 별 이상 없이 잘 도는지 테스트 해야 하는데... 그건... 음... 그래.. 우선 넘어가자. ㅎ.