在 deepmd-kit-recipes/libdeepmd-feedstock的 文件中,我们把包的名称设置为 ,其中把 放在最后,就可以确保用 或者 就可以搜寻到指定的版本。
build:
number:1
string:"{{ PKG_BUILDNUM }}_cuda{{ cuda_compiler_version }}_{{ dp_variant }}"# [float_prec == 'high']
string:"{{ PKG_BUILDNUM }}_cuda{{ cuda_compiler_version }}_{{ dp_variant }}_{}"# [float_prec != 'high']
run_exports:
-libdeepmd{{version}}*{{dp_variant}}# [float_prec == 'high']
-libdeepmd{{version}}*{{dp_variant}}_{{float_prec}}# [float_prec != 'high']
skip:true# [not linux]
同时,设置了 ,可以确保把 加入构建()依赖的 package,自动把相同版本的 加入运行时 () 的依赖。
和前两个 package 类似, 的依赖就是 、、 以及其它构建工具:
requirements:
build:
-{{compiler('c')}}
-{{compiler('cxx')}}
-cmake
-git
host:
-cudatoolkit{{cuda_compiler_version}}*# [cuda_compiler_version != 'None']
-cudnn{{cudnn}}*# [cuda_compiler_version != 'None']
-libtensorflow_cc{{tf}}*
run:
-libtensorflow_cc{{tf}}*
-{{pin_compatible('cudatoolkit',max_pin='x.x')}}# [cuda_compiler_version != 'None']
-{{pin_compatible('cudnn')}}# [cuda_compiler_version != 'None']
这里,如何指定 tf 的版本?这是在 最上方实现的,可以根据不同的 设置不同的 和 ,之后再将两者拼接起来:
{% if cuda_compiler_version == "None" %}
{% set dp_variant = "cpu" %}
{% else %}
{% set dp_variant = "gpu" %}
{% endif %}
{% if cuda_compiler_version == "None" %}
{% set dp_variant = "cpu" %}
{% set tf_version = "2.3" %}
{% else %}
{% set dp_variant = "gpu" %}
{% if cuda_compiler_version == "10.1" %}
{% set tf_version = "2.3" %}
{% elif cuda_compiler_version == "10.0" %}
{% set tf_version = "2.1" %}
{% else %}
{% set tf_version = "2.1" %}
{% endif %}
{% endif %}
{% set tf = "{} {}".format(tf_version, dp_variant) %}
和 一样,我们在 里面仍然把 的版本设为 5.4,因为 cudatoolkit 仍然不支持用 7.3 编译。
c_compiler_version:
-5.4
cxx_compiler_version:
-5.4
文件比较简单。在使用 编译时,我们只需要把 和其它目录均设为 即可。
set-e
mkdir -psource/build
cdsource/build
cmake -DTENSORFLOW_ROOT=$-DCMAKE_INSTALL_PREFIX=$-DFLOAT_PREC=$-DCMAKE_CXX_FLAGS="-lrt -pthread"-DCMAKE_SHARED_LINKER_FLAGS_INIT="-lrt -pthread"-DCMAKE_LINK_WHAT_YOU_USE=TRUE ..
make -j$
make install
make lammps
mkdir -p$/share
mv USER-DEEPMD$/share
指 检测到的核心数。现在,大功告成!接下来我们就可以开始编译集成了 DP 的 LAMMPS 以及 AmberTools。
领取专属 10元无门槛券
私享最新 技术干货