problems of compiling with multiple gpu types

Dear lammps-users:

There are two different gpu types in our super computer:

Tesla P100-PCIE-16GB (Compute capability: 6)

Tesla K40c (Compute capability: 3.5)

Device 0: “Tesla P100-PCIE-16GB”

Device 1: “Tesla P100-PCIE-16GB”

Device 2: “Tesla K40c”

Device 3: “Tesla K40c”

Device 4: “Tesla P100-PCIE-16GB”

Device 5: “Tesla P100-PCIE-16GB”

Device 6: “Tesla K40c”

Device 7: “Tesla K40c”

Device 8: “Tesla K40c”

First time I chose CUDA_arch = sm_60. I found that compiling didn’t work with gpu 3 (Tesla K40c), but It’s OK with gpu 0 (Tesla P100).

However, If I changed CUDA_arch = sm_35, It couldn’t work with both P100 and K40c. The error messages are like this:

$ ./lmp_gpu -sf gpu -pk gpu 1 gpuID 3 3 -in in.lj

LAMMPS (31 Mar 2017)

ERROR: GPU library not compiled for this accelerator (…/gpu_extra.h:40)

Last command: package gpu 1

Cuda driver error 4 in call at file ‘geryon/nvd_device.h’ in line 124.

So, I would like to ask:

  1. Does lammps not support different gpu types in one computer?
  2. Is it possible to pass the gpu 0, just compile with gpu 2?
  3. Or If there is any possible mistake I didn’t notice?

Thank you.

Best,

Chiang, Yi

I suggest you first focus

on compiling and running LAMMPS successfully

on each GPU. Then you have 2 executables,

each optimized for a different GPU, or even
built with a different Cuda lib.

Commands like mpirun, mpiexec

have ways to launch different executables on

different nodes, to run a single calculation on

a heterogeneous machine.

Steve

Dear lammps-users:

Thanks for your prompt reply.

But it didn’t work with mpirun command, too. (We still couldn’t compile with K40c.)

Is there any way to compile just with one gpu?

Best,

Chiang, Yi

寄件者: Steve Plimpton
傳送時間: 2017年7月10日 下午 10:09
收件者: Chiang Yi
副本: [email protected]
主旨: Re: [lammps-users] problems of compiling with multiple gpu types

I suggest you first focus

on compiling and running LAMMPS successfully

on each GPU. Then you have 2 executables,

each optimized for a different GPU, or even
built with a different Cuda lib.

Commands like mpirun, mpiexec

have ways to launch different executables on

different nodes, to run a single calculation on

a heterogeneous machine.

Steve