You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

select_gpu.py 1.5 kB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. """
  2. /**
  3. * Copyright 2020 Zhejiang Lab. All Rights Reserved.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. * =============================================================
  17. */
  18. """
  19. import os
  20. import sys
  21. import pynvml
  22. import logging
  23. pid = os.getpid()
  24. pynvml.nvmlInit()
  25. def select_gpu():
  26. deviceCount = pynvml.nvmlDeviceGetCount()
  27. for i in range(deviceCount):
  28. logging.info('-------------get GPU information--------------')
  29. handle = pynvml.nvmlDeviceGetHandleByIndex(i)
  30. logging.info("Device:%s %s", i, pynvml.nvmlDeviceGetName(handle))
  31. gpu_info = pynvml.nvmlDeviceGetMemoryInfo(handle)
  32. logging.info('free:%s MB', gpu_info.free / (1000 * 1000))
  33. if gpu_info.free / (1000 * 1000) > 3072:
  34. os.environ["CUDA_VISIBLE_DEVICES"] = str(i)
  35. logging.info('use GPU:%s %s', i, pynvml.nvmlDeviceGetName(handle))
  36. return
  37. logging.info('No GPU is currently available')
  38. sys.exit()

一站式算法开发平台、高性能分布式深度学习框架、先进算法模型库、视觉模型炼知平台、数据可视化分析平台等一系列平台及工具,在模型高效分布式训练、数据处理和可视分析、模型炼知和轻量化等技术上形成独特优势,目前已在产学研等各领域近千家单位及个人提供AI应用赋能

Contributors (1)