Skip to content

Commit 75310d9

Browse files
committed
update aplus field cu kernels
1 parent 86b79ca commit 75310d9

File tree

10 files changed

+742
-506
lines changed

10 files changed

+742
-506
lines changed

ext/ext/ck.py

Lines changed: 0 additions & 1 deletion
This file was deleted.
File renamed without changes.

ext/ext/y2/dfield_aplus_cu1.yaml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
KERNEL_NAME: dfieldAplus_cu1
2+
TEMPLATE_PARAMS: template <class ETYP>
3+
# CONSTEXPR_FLAGS:
4+
5+
# COUNT:
6+
# ENERGY:
7+
# VIRIAL:
8+
# GRADIENT:
9+
10+
# CUT_DISTANCE:
11+
OFF_DISTANCE:
12+
- 'off'
13+
14+
EXCLUDE_INFO:
15+
- dpinfo
16+
SCALE_1X_TYPE: real3_const_array,1
17+
18+
EXTRA_PARAMS: |
19+
, real(*restrict field)[3]
20+
, const real(*restrict rpole)[10]
21+
, const real *restrict pdamp
22+
, const real *restrict dirdamp
23+
, real aewald
24+
25+
I_POSITION:
26+
- def: register real xi from:x
27+
- def: register real yi from:y
28+
- def: register real zi from:z
29+
K_POSITION:
30+
- def: register real xk from:x
31+
- def: register real yk from:y
32+
- def: register real zk from:z
33+
I_VARIABLES:
34+
- def: shared real ci from:rpole,MPL_PME_0
35+
- def: shared real dix from:rpole,MPL_PME_X
36+
- def: shared real diy from:rpole,MPL_PME_Y
37+
- def: shared real diz from:rpole,MPL_PME_Z
38+
- def: shared real qixx from:rpole,MPL_PME_XX
39+
- def: shared real qixy from:rpole,MPL_PME_XY
40+
- def: shared real qixz from:rpole,MPL_PME_XZ
41+
- def: shared real qiyy from:rpole,MPL_PME_YY
42+
- def: shared real qiyz from:rpole,MPL_PME_YZ
43+
- def: shared real qizz from:rpole,MPL_PME_ZZ
44+
- def: shared real pdi from:pdamp
45+
- def: shared real ddi from:dirdamp
46+
K_VARIABLES:
47+
- def: register real ck from:rpole,MPL_PME_0
48+
- def: register real dkx from:rpole,MPL_PME_X
49+
- def: register real dky from:rpole,MPL_PME_Y
50+
- def: register real dkz from:rpole,MPL_PME_Z
51+
- def: register real qkxx from:rpole,MPL_PME_XX
52+
- def: register real qkxy from:rpole,MPL_PME_XY
53+
- def: register real qkxz from:rpole,MPL_PME_XZ
54+
- def: register real qkyy from:rpole,MPL_PME_YY
55+
- def: register real qkyz from:rpole,MPL_PME_YZ
56+
- def: register real qkzz from:rpole,MPL_PME_ZZ
57+
- def: register real pdk from:pdamp
58+
- def: register real ddk from:dirdamp
59+
I_FORCE:
60+
- def: register real fidx addto:field,0
61+
- def: register real fidy addto:field,1
62+
- def: register real fidz addto:field,2
63+
K_FORCE:
64+
- def: register real fkdx addto:field,0
65+
- def: register real fkdy addto:field,1
66+
- def: register real fkdz addto:field,2
67+
68+
# SCALED_PAIRWISE_INTERACTION:
69+
FULL_PAIRWISE_INTERACTION: |
70+
real xr = xk - @xi@;
71+
real yr = yk - @yi@;
72+
real zr = zk - @zi@;
73+
real r2 = image2(xr, yr, zr);
74+
if (r2 <= off * off and incl) {
75+
pair_dfield_aplus_v2<ETYP>(
76+
r2, xr, yr, zr, scaleb, @ci@, @dix@, @diy@, @diz@, @pdi@, @ddi@,
77+
@qixx@, @qixy@, @qixz@, @qiyy@, @qiyz@, @qizz@,
78+
ck, dkx, dky, dkz, pdk, ddk,
79+
qkxx, qkxy, qkxz, qkyy, qkyz, qkzz, aewald,
80+
@fidx@, @fidy@, @fidz@, fkdx, fkdy, fkdz);
81+
} // end if (include)

ext/ext/y2/ufield_aplus_cu1.yaml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
KERNEL_NAME: ufieldAplus_cu1
2+
TEMPLATE_PARAMS: template <class ETYP>
3+
# CONSTEXPR_FLAGS:
4+
5+
# COUNT:
6+
# ENERGY:
7+
# VIRIAL:
8+
# GRADIENT:
9+
10+
# CUT_DISTANCE:
11+
OFF_DISTANCE:
12+
- 'off'
13+
14+
EXCLUDE_INFO:
15+
- uinfo
16+
SCALE_1X_TYPE: real_const_array
17+
18+
EXTRA_PARAMS: |
19+
, const real(*restrict uind)[3]
20+
, real(*restrict field)[3]
21+
, const real *restrict pdamp
22+
, const real *restrict thole
23+
, real aewald
24+
25+
I_POSITION:
26+
- def: register real xi from:x
27+
- def: register real yi from:y
28+
- def: register real zi from:z
29+
K_POSITION:
30+
- def: register real xk from:x
31+
- def: register real yk from:y
32+
- def: register real zk from:z
33+
I_VARIABLES:
34+
- def: shared real uidx from:uind,0
35+
- def: shared real uidy from:uind,1
36+
- def: shared real uidz from:uind,2
37+
- def: shared real pdi from:pdamp
38+
- def: shared real pti from:thole
39+
K_VARIABLES:
40+
- def: register real ukdx from:uind,0
41+
- def: register real ukdy from:uind,1
42+
- def: register real ukdz from:uind,2
43+
- def: register real pdk from:pdamp
44+
- def: register real ptk from:thole
45+
I_FORCE:
46+
- def: register real fidx addto:field,0
47+
- def: register real fidy addto:field,1
48+
- def: register real fidz addto:field,2
49+
K_FORCE:
50+
- def: register real fkdx addto:field,0
51+
- def: register real fkdy addto:field,1
52+
- def: register real fkdz addto:field,2
53+
54+
# SCALED_PAIRWISE_INTERACTION:
55+
FULL_PAIRWISE_INTERACTION: |
56+
real xr = xk - @xi@;
57+
real yr = yk - @yi@;
58+
real zr = zk - @zi@;
59+
real r2 = image2(xr, yr, zr);
60+
if (r2 <= off * off and incl) {
61+
pair_ufield_aplus_v2<ETYP>(
62+
r2, xr, yr, zr, scalea, @uidx@, @uidy@, @uidz@, @pdi@, @pti@,
63+
ukdx, ukdy, ukdz, pdk, ptk, aewald,
64+
@fidx@, @fidy@, @fidz@, fkdx, fkdy, fkdz);
65+
} // end if (include)

ext/ext/y3/dfieldAplus_cu1.yaml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
OUTPUT_DIR: src/cu/aplus
2+
KERNEL_NAME: dfieldAplus_cu1
3+
TEMPLATE_PARAMS: template <class ETYP>
4+
# CONSTEXPR_FLAGS:
5+
6+
# COUNT:
7+
# ENERGY:
8+
# VIRIAL:
9+
# GRADIENT:
10+
11+
# CUT_DISTANCE:
12+
OFF_DISTANCE: 'off'
13+
14+
EXCLUDE_INFO: dpinfo
15+
SCALE_1X_TYPE: real3_const_array,1
16+
17+
EXTRA_PARAMS: |
18+
, real(*restrict field)[3]
19+
, const real(*restrict rpole)[10]
20+
, const real *restrict pdamp
21+
, const real *restrict dirdamp
22+
, real aewald
23+
24+
I_VARIABLES:
25+
- register real xi from:x
26+
- register real yi from:y
27+
- register real zi from:z
28+
- shared real ci from:rpole,MPL_PME_0
29+
- shared real dix from:rpole,MPL_PME_X
30+
- shared real diy from:rpole,MPL_PME_Y
31+
- shared real diz from:rpole,MPL_PME_Z
32+
- shared real qixx from:rpole,MPL_PME_XX
33+
- shared real qixy from:rpole,MPL_PME_XY
34+
- shared real qixz from:rpole,MPL_PME_XZ
35+
- shared real qiyy from:rpole,MPL_PME_YY
36+
- shared real qiyz from:rpole,MPL_PME_YZ
37+
- shared real qizz from:rpole,MPL_PME_ZZ
38+
- shared real pdi from:pdamp
39+
- shared real ddi from:dirdamp
40+
K_VARIABLES:
41+
- register real xk from:x
42+
- register real yk from:y
43+
- register real zk from:z
44+
- register real ck from:rpole,MPL_PME_0
45+
- register real dkx from:rpole,MPL_PME_X
46+
- register real dky from:rpole,MPL_PME_Y
47+
- register real dkz from:rpole,MPL_PME_Z
48+
- register real qkxx from:rpole,MPL_PME_XX
49+
- register real qkxy from:rpole,MPL_PME_XY
50+
- register real qkxz from:rpole,MPL_PME_XZ
51+
- register real qkyy from:rpole,MPL_PME_YY
52+
- register real qkyz from:rpole,MPL_PME_YZ
53+
- register real qkzz from:rpole,MPL_PME_ZZ
54+
- register real pdk from:pdamp
55+
- register real ddk from:dirdamp
56+
I_FORCE:
57+
- register real fidx addto:field,0
58+
- register real fidy addto:field,1
59+
- register real fidz addto:field,2
60+
K_FORCE:
61+
- register real fkdx addto:field,0
62+
- register real fkdy addto:field,1
63+
- register real fkdz addto:field,2
64+
65+
# SCALED_PAIRWISE_INTERACTION:
66+
FULL_PAIRWISE_INTERACTION: |
67+
real xr = @xk@ - @xi@;
68+
real yr = @yk@ - @yi@;
69+
real zr = @zk@ - @zi@;
70+
real r2 = image2(xr, yr, zr);
71+
if (r2 <= off * off and incl) {
72+
pair_dfield_aplus_v2<ETYP>(
73+
r2, xr, yr, zr, scaleb, @ci@, @dix@, @diy@, @diz@, @pdi@, @ddi@,
74+
@qixx@, @qixy@, @qixz@, @qiyy@, @qiyz@, @qizz@,
75+
@ck@, @dkx@, @dky@, @dkz@, @pdk@, @ddk@,
76+
@qkxx@, @qkxy@, @qkxz@, @qkyy@, @qkyz@, @qkzz@, aewald,
77+
@fidx@, @fidy@, @fidz@, @fkdx@, @fkdy@, @fkdz@);
78+
} // end if (include)

ext/ext/y3/genall.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
# Run a python script for all YAML files in this directory to generate their cuda kernals
44

55
for f in *.yaml; do
6-
python3 ../ck.py -c $f | bash
6+
python3 ../ck3.py -c $f | bash
77
done

ext/ext/y3/ufieldAplus_cu1.yaml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
OUTPUT_DIR: src/cu/aplus
2+
KERNEL_NAME: ufieldAplus_cu1
3+
TEMPLATE_PARAMS: template <class ETYP>
4+
# CONSTEXPR_FLAGS:
5+
6+
# COUNT:
7+
# ENERGY:
8+
# VIRIAL:
9+
# GRADIENT:
10+
11+
# CUT_DISTANCE:
12+
OFF_DISTANCE: 'off'
13+
14+
EXCLUDE_INFO: uinfo
15+
SCALE_1X_TYPE: real_const_array
16+
17+
EXTRA_PARAMS: |
18+
, const real(*restrict uind)[3]
19+
, real(*restrict field)[3]
20+
, const real *restrict pdamp
21+
, const real *restrict thole
22+
, real aewald
23+
# IMPLICIT_PARAMS:
24+
25+
I_VARIABLES:
26+
- register real xi from:x
27+
- register real yi from:y
28+
- register real zi from:z
29+
- shared real uidx from:uind,0
30+
- shared real uidy from:uind,1
31+
- shared real uidz from:uind,2
32+
- shared real pdi from:pdamp
33+
- shared real pti from:thole
34+
K_VARIABLES:
35+
- register real xk from:x
36+
- register real yk from:y
37+
- register real zk from:z
38+
- register real ukdx from:uind,0
39+
- register real ukdy from:uind,1
40+
- register real ukdz from:uind,2
41+
- register real pdk from:pdamp
42+
- register real ptk from:thole
43+
I_FORCE:
44+
- register real fidx addto:field,0
45+
- register real fidy addto:field,1
46+
- register real fidz addto:field,2
47+
K_FORCE:
48+
- register real fkdx addto:field,0
49+
- register real fkdy addto:field,1
50+
- register real fkdz addto:field,2
51+
52+
# SCALED_PAIRWISE_INTERACTION:
53+
FULL_PAIRWISE_INTERACTION: |
54+
real xr = @xk@ - @xi@;
55+
real yr = @yk@ - @yi@;
56+
real zr = @zk@ - @zi@;
57+
real r2 = image2(xr, yr, zr);
58+
if (r2 <= off * off and incl) {
59+
pair_ufield_aplus_v2<ETYP>(
60+
r2, xr, yr, zr, scalea, @uidx@, @uidy@, @uidz@, @pdi@, @pti@,
61+
@ukdx@, @ukdy@, @ukdz@, @pdk@, @ptk@, aewald,
62+
@fidx@, @fidy@, @fidz@, @fkdx@, @fkdy@, @fkdz@);
63+
} // end if (include)

0 commit comments

Comments
 (0)