환경 변수를 자동으로 설정하는 방법은 무엇입니까?

환경 변수를 자동으로 설정하는 방법은 무엇입니까?

그래서 저는 기계 학습에 대한 연구를 하고 원격 GPU 서버를 사용하여 작업을 수행합니다. 제가 출근할 때 주로 하는 일은 SSH 클라이언트를 사용하여 서버에 액세스하고 다음 hi과 같은 alias 명령을 실행하는 것입니다.

alias hi='conda activate userconda; export CUDA_VISIBLE_DEVICES=1; alias hi'

서버는 일반적으로 2~3명이 공유하며 각각 ID 0또는 1.

CUDA_VISIBLE_DEVICES제가 궁금한 점은 어떤 GPU가 사용되지 않는지에 따라 환경 변수에 할당할 GPU ID를 자동으로 결정하는 방법이 있을까요 ? 현재 내 별칭은 으로 하드 코딩되어 있지만 CUDA_VISIBLE_DEVICES=1프로그램이 자동으로 그렇게 할 수 있다면 더 편리할 것입니다.

의 출력을 사용하는 방법이 있을 수 있다고 생각했지만 nvidia-smi그것이 올바른 접근 방식인지는 확실하지 않습니다.

감사해요!

답변1

Nvidia smi는 활성 비디오 카드의 버스를 보고합니다.

nvidia-smi 
Sat Apr 11 04:02:56 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00    Driver Version: 440.64.00    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce RTX 2070    On   | 00000000:01:00.0  On |                  N/A |
| 45%   33C    P8    11W / 175W |    252MiB /  7974MiB |      4%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1089      G   /usr/lib/xorg/Xorg                           106MiB |
|    0      1355      G   /usr/bin/kwin_x11                             79MiB |
|    0      1361      G   /usr/bin/krunner                               2MiB |
|    0      1364      G   /usr/bin/plasmashell                          56MiB |
|    0      5152      G   /usr/lib/firefox/firefox                       2MiB |
+-----------------------------------------------------------------------------+

그래서:00000000:01:00.0 켜짐장치 버스입니다. 따라서 이 결과를 얻기 위해 nvidia-smi grep을 실행하고 lspci로 얻을 수 있는 버스의 다른 장치를 평가할 수 있습니다.

관련 정보