Please select To the mobile version | Continue to access the desktop computer version


 Forgot password?
View: 22|Reply: 1
Collapse the left

any way to estimate the cost of DeePMD?

[Copy link]
Post time: 3 day(s) ago
| Show all posts |Read mode
Edited by yiwang at 2020-06-29 17:01

Dear all,

Just come from the thread "DeepMD becomes bottleneck of LAMMPS calculation"...
Personally, I think for the nice accuracy provided by DeePMD, spending one or two magnitude of order longer time is acceptable. However, as I recently trained a potential for an alloy (5 types of atoms, using se_ar descriptor), I observe much higher cost compared with that reported in the old thread. For a system of ~400 atoms, the system run only <ten steps per second on a 56 cores workstation. And when the number of atoms goes up to tens of thousands, the memory cost makes it impossible to run on the 256 G workstation.

I had increased the neuron numbers per layer from the setting [25, 50, 100] to [45, 90, 180], for the former does not predict well, as observed. This supposedly is related with lower speed.
But in another test, I decrease the neuron numbers to [10, 20, 40]. The speed did accelerate, but not much.

It confuses me why the cpu cost is so it related with the number of atomic types?

And any suggestion on the controlling of openmp and mpi settings in deepmd-lammps?

It would be very informative if there is a guideline to help the users estimate the prediction time that would be cost by DeePMD.

Many thanks!

Yi Wang

Tsinghua University

Use magic Report

Post time: The day before yesterday 16:12
| Show all posts
Dear Yi,

We have a lot of experience on GPUs but not much on CPUs.  As far as I see the best number of threads per process is about 4-6. Thus you may want to try 14 MPI process and with 4 threads per each process, or 8 process with 7 threads per process.

Could you report the accuracy of using 20, 50, 100 embedding net and 45, 90, 180 embedding net? the size of the embedding net is critical to efficiency.

The cost increases as the number of types.

A new construction called type embedding may help in the multi-component systems. You can download the code from and checkout the type-embed branch. The descriptor section should be revised as
        "descriptor" :{
            "type":             "se_a_ebd",
            "sel":              [46, 92],
            "rcut_smth":        5.80,
            "rcut":             6.00,
            "neuron":           [20, 40, 80],
            "resnet_dt":        false,
            "axis_neuron":      4,
            "seed":             1,
            "type_nchanl":      2,
            "type_nlayer":      1,
            "type_one_side":    true,
            "_comment":         " that's all"
You may want to play around type_nchanl and type_nlayer to see the accuracy of the DP.

Best regards,
Reply Support Not support

Use magic Report

You have to log in before you can reply Login | Register

Points Rules

Dark room|DeePMD

2020-07-02 17:32 GMT+8 , Processed in 0.095470 sec., 19 queries .

Quick Reply To Top Return to the list