Skip to content

Instructions and Documentation for Power8 and XL #2

@petroseskinder

Description

@petroseskinder

In commit 13, support for power8 and the xl compiler were added. However, accompanying instructions were not added to how to build, execute and experiment with power.

For example, it's unclear whether intel_intrinsics_power8.h must be copied to $LAMMPS_DIR/src. Additionally, for building LAMMPS, I run make power8. However, this results in numerous errors. In particular, the changes in commit 13 are not propagated. For example, the changes to IntelBuffers are not included, nor is the change for the pair_tersoff_intel.cpp.

After manually making the changes in [commit13( ) into $LAMMPS_DIR/src/, and copying all of the new power8 files into $LAMMPS_DIR/src, I obtain the following errors

rs6000_secondary_reload_inner:17011, type = load
(parallel [
        (set (reg:V4SI 82 5)
            (reg:V4SI 34 2))
        (clobber (reg:DI 4 4))
    ])
../pair_tersoff_intel.cpp: In static member function ‘static void IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::kernel_step(int, int, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::iarr, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::iarr, const int*, int, typename LAMMPS_NS::IntelBuffers<flt_t, acc_t>::atom_t*, const typename LAMMPS_NS::PairTersoffIntel::ForceConst<flt_t>::c_inner_t*, const typename LAMMPS_NS::PairTersoffIntel::ForceConst<flt_t>::c_outer_t*, typename LAMMPS_NS::IntelBuffers<flt_t, acc_t>::vec3_acc_t*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec*, int, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::iarr, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::iarr, IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::bvec) [with int EVFLAG = 1; int EFLAG = 1; flt_t = float; acc_t = float; lmp_intel::CalculationMode mic = (lmp_intel::CalculationMode)7u; bool pack_i = false; IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::iarr = int [4]; typename LAMMPS_NS::IntelBuffers<flt_t, acc_t>::atom_t = LAMMPS_NS::IntelBuffers<float, float>::atom_t; typename LAMMPS_NS::PairTersoffIntel::ForceConst<flt_t>::c_inner_t = LAMMPS_NS::PairTersoffIntel::ForceConst<float>::c_inner_t; typename LAMMPS_NS::PairTersoffIntel::ForceConst<flt_t>::c_outer_t = LAMMPS_NS::PairTersoffIntel::ForceConst<float>::c_outer_t; typename LAMMPS_NS::IntelBuffers<flt_t, acc_t>::vec3_acc_t = LAMMPS_NS::IntelBuffers<float, float>::vec3_acc_t; IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::avec = lmp_intel::altivec::fvec; IntelKernelTersoff<flt_t, acc_t, mic, pack_i>::bvec = lmp_intel::altivec::bvec]’:
../pair_tersoff_intel.cpp:886:1: internal compiler error: in rs6000_secondary_reload_fail, at config/rs6000/rs6000.c:16984
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
Preprocessed source stored into /tmp/cc15wmyP.out file, please attach this to your bugreport.
make[1]: *** [pair_tersoff_intel.o] Error 1
make[1]: Leaving directory `/home/petros/tersoff/lammps-tersoff-vector/machines/lammps-10Mar16/src/Obj_power8'
make: *** [power8] Error 2

Clearly, I am making a mistake in some portion of the build process. It's unclear though, what portion.

You can obtain a repro of the issue in our fork of the repo.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions