[chimerax-users] Specify GPU id for ChimeraX

Shasha Feng shaalltime at gmail.com
Tue Nov 24 09:21:10 PST 2020


Hi Guillaume, and Eric

Thanks for the tip. The temporary assignment of visiable GPU devices is
exactly what I want to get. Though it looks like the recipe of using
'CUDA_VISIBLE_DEVICES=1' does not work at least on my ubuntu 20.04 with
chimerax 1.0. I also tried Eric's suggestion just now.

sf at sf-MS-7C35:~$ echo $CUDA_VISIBLE_DEVICES

sf at sf-MS-7C35:~$ export CUDA_VISIBLE_DEVICES=1
sf at sf-MS-7C35:~$ echo $CUDA_VISIBLE_DEVICES
1
sf at sf-MS-7C35:~$ chimerax &
[1] 673010
sf at sf-MS-7C35:~$ nvidia-smi
Tue Nov 24 12:09:28 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.66       Driver Version: 450.66       CUDA Version: 11.0
  |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr.
ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute
M. |
|                               |                      |               MIG
M. |
|===============================+======================+======================|
|   0  GeForce RTX 207...  Off  | 00000000:2D:00.0  On |
 N/A |
| 60%   74C    P2   191W / 215W |    763MiB /  7974MiB |     99%
 Default |
|                               |                      |
 N/A |
+-------------------------------+----------------------+----------------------+
|   1  GeForce RTX 207...  Off  | 00000000:2E:00.0 Off |
 N/A |
|  0%   34C    P8    14W / 215W |     14MiB /  7982MiB |      0%
 Default |
|                               |                      |
 N/A |
+-------------------------------+----------------------+----------------------+


+-----------------------------------------------------------------------------+
| Processes:
   |
|  GPU   GI   CI        PID   Type   Process name                  GPU
Memory |
|        ID   ID                                                   Usage
   |
|=============================================================================|
|    0   N/A  N/A      1343      G   /usr/lib/xorg/Xorg
35MiB |
|    0   N/A  N/A      2338      G   /usr/lib/xorg/Xorg
 174MiB |
|    0   N/A  N/A      2463      G   /usr/bin/gnome-shell
 233MiB |
|    0   N/A  N/A    671633      G   ...AAAAAAAAA= --shared-files
45MiB |
|    0   N/A  N/A    672504      C   /opt/conda/bin/python
229MiB |
|    0   N/A  N/A    673010      G   chimerax
33MiB |
|    1   N/A  N/A      1343      G   /usr/lib/xorg/Xorg
 4MiB |
|    1   N/A  N/A      2338      G   /usr/lib/xorg/Xorg
 4MiB |
+-----------------------------------------------------------------------------+

After setting the environment variable and running chimerax in the same
session, it still runs on GPU 0.
I also tried a recipe that defines
"export NVIDIA_VISIBLE_DEVICES=1,
export CUDA_VISIBLE_DEVICES=0" shared here [
https://stackoverflow.com/a/58445444]. It does not work either.

To ChimeraX developers,
I wonder how ChimeraX is exposed to CUDA. I have basis in CUDA computing
and using CUDA in Python. If you can give some clues, that would be great.

Best,
Shasha

On Tue, Nov 24, 2020 at 12:18 PM Eric Pettersen <pett at cgl.ucsf.edu> wrote:

> To supplement Guilaume's very helpful answer, you could make an alias to
> reduce the typing involved, and you could put the alias in your shell
> startup file.  For the bash shell, the syntax for making an alias named
> 'cx' for the command would be:
>
> alias cx="CUDA_VISIBLE_DEVICES=1 chimerax"
>
> Other shells have similar (but not necessarily identical) syntaxes.
>
> --Eric
>
> Eric Pettersen
> UCSF Computer Graphics Lab
>
>
> On Nov 24, 2020, at 12:09 AM, Guillaume Gaullier <guillaume at gaullier.org>
> wrote:
>
> Hello,
>
> You can restrict which of your GPUs ChimeraX will be able to detect by
> starting it from the shell like so:
>
> CUDA_VISIBLE_DEVICES=1 chimerax
>
> replace 1 with the device number you want, this is the same one as
> reported by nvidia-smi. This will work until you close ChimeraX, next time
> you run it you still need to add the environment variable before the
> "chimerax" command.
>
> You can also make this environment variable stay around until you close
> the shell session like so:
>
> export CUDA_VISIBLE_DEVICES=1
>
> then you can open ChimeraX from the same shell session, close it, and
> reopen with only the "chimerax" command and it should still only see the
> GPU you indicated.
>
> When you close and restart your shell, you will have to export the
> environment variable again. I don’t recommend adding the export to your
> ~/.bashrc or other shell initialization script, because then all your shell
> sessions will have this environment variable set, so all the commands you
> run will only see this GPU, which is probably not what you want. It is less
> likely to get in your way down the road if you only set this environment
> variable for the duration of a shell you opened specifically to run
> ChimeraX from.
>
> I hope this helps,
>
> Guillaume
>
>
> On 24 Nov 2020, at 01:51, Shasha Feng <shaalltime at gmail.com> wrote:
>
> Hi Tom,
>
> Sorry about not clarifying my operating system. I am using ubuntu 20.04
> with two NVIDIA GPU cards.
> Do I need to change OpenGL setting or reconfigure the nvidia setting?
>
> Thanks,
> Shasha
>
>
>
> On Mon, Nov 23, 2020 at 6:58 PM Tom Goddard <goddard at sonic.net> wrote:
>
>> Hi Shasta,
>>
>> ChimeraX has no way to select which GPU it uses.   The operating system
>> or opengl driver decides.  You didn't mention which operating system you
>> are using.  Here is an example of how to set the default OpenGL GPU in
>> Windows.
>>
>>
>> https://www.techadvisor.co.uk/how-to/pc-components/how-set-default-graphics-card-3612668/
>>
>>   Tom
>>
>>
>> On Nov 23, 2020, at 2:38 PM, Shasha Feng <shaalltime at gmail.com> wrote:
>>
>> Hi,
>>
>> Is there any way to specify which GPU device for ChimeraX to run on?
>> Currently, it uses the default GPU 0, which can disturb the existing jobs.
>> Thanks.
>>
>> Best,
>> Shasha
>>
>> _______________________________________________
>> ChimeraX-users mailing list
>> ChimeraX-users at cgl.ucsf.edu
>> Manage subscription:
>> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
>>
>>
>>
> _______________________________________________
> ChimeraX-users mailing list
> ChimeraX-users at cgl.ucsf.edu
> Manage subscription:
> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
>
>
> _______________________________________________
> ChimeraX-users mailing list
> ChimeraX-users at cgl.ucsf.edu
> Manage subscription:
> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20201124/c3836f94/attachment-0001.html>


More information about the ChimeraX-users mailing list