Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
elpa
elpa
Commits
1d969360
Commit
1d969360
authored
Oct 18, 2018
by
Andreas Marek
Browse files
Add ELPA_AUTOTUNE_EXTENSIVE; use for stripe_width
parent
c14f2990
Changes
3
Show whitespace changes
Inline
Side-by-side
elpa/elpa_constants.h.in
View file @
1d969360
...
...
@@ -107,7 +107,8 @@ enum ELPA_CONSTANTS {
#define ELPA_FOR_ALL_AUTOTUNE_LEVELS(X, ...) \
X(ELPA_AUTOTUNE_NOT_TUNABLE, 0) \
X(ELPA_AUTOTUNE_FAST, 1) \
X(ELPA_AUTOTUNE_MEDIUM, 2)
X(ELPA_AUTOTUNE_MEDIUM, 2) \
X(ELPA_AUTOTUNE_EXTENSIVE, 3)
enum ELPA_AUTOTUNE_LEVELS {
ELPA_FOR_ALL_AUTOTUNE_LEVELS(ELPA_ENUM_ENTRY)
...
...
src/elpa2/elpa2_trans_ev_tridi_to_band_template.F90
View file @
1d969360
...
...
@@ -278,24 +278,24 @@
thread_width
=
(
l_nev
-1
)/
max_threads
+
1
! number of eigenvectors per OMP thread
#if REALCASE == 1
!
call obj%get("stripe
_
width_real",stripe_width, error)
call
obj
%
get
(
"stripewidth_real"
,
stripe_width
,
error
)
#ifdef DOUBLE_PRECISION_REAL
stripe_width
=
48
! Must be a multiple of 4
!
stripe_width = 48 ! Must be a multiple of 4
#else
!
stripe_width = stripe_width * 2
stripe_width
=
96
! Must be a multiple of 8
stripe_width
=
stripe_width
*
2
!
stripe_width = 96 ! Must be a multiple of 8
#endif
#endif /* REALCASE */
#if COMPLEXCASE == 1
!
call obj%get("stripe
_
width_complex",stripe_width, error)
call
obj
%
get
(
"stripewidth_complex"
,
stripe_width
,
error
)
#ifdef DOUBLE_PRECISION_COMPLEX
stripe_width
=
48
! Must be a multiple of 2
!
stripe_width = 48 ! Must be a multiple of 2
#else
!
stripe_width = stripe_width * 2
stripe_width
=
48
! Must be a multiple of 4
stripe_width
=
stripe_width
*
2
!
stripe_width = 48 ! Must be a multiple of 4
#endif
#endif /* COMPLEXCASE */
...
...
@@ -384,18 +384,23 @@
else
! useGPU
#if REALCASE == 1
call
obj
%
get
(
"stripewidth_real"
,
stripe_width
,
error
)
#ifdef DOUBLE_PRECISION_REAL
stripe_width
=
48
! Must be a multiple of 4
!
stripe_width = 48 ! Must be a multiple of 4
#else
stripe_width
=
96
! Must be a multiple of 8
!stripe_width = 96 ! Must be a multiple of 8
stripe_width
=
2
*
stripe_width
#endif
#endif /* REALCASE */
#if COMPLEXCASE == 1
call
obj
%
get
(
"stripewidth_complex"
,
stripe_width
,
error
)
#ifdef DOUBLE_PRECISION_COMPLEX
stripe_width
=
48
! Must be a multiple of 2
!
stripe_width = 48 ! Must be a multiple of 2
#else
stripe_width
=
48
! Must be a multiple of 4
!
stripe_width = 48 ! Must be a multiple of 4
#endif
#endif /* COMPLEXCASE */
...
...
src/elpa_index.c
View file @
1d969360
...
...
@@ -222,9 +222,9 @@ static const elpa_index_int_entry_t int_entries[] = {
INT_ENTRY
(
"blocking_in_band_to_full"
,
"Loop blocking, default 3"
,
3
,
ELPA_AUTOTUNE_MEDIUM
,
ELPA_AUTOTUNE_DOMAIN_ANY
,
band_to_full_cardinality
,
band_to_full_enumerate
,
band_to_full_is_valid
,
NULL
,
PRINT_YES
),
INT_ENTRY
(
"stripewidth_real"
,
"Stripewidth_real, default 48. Must be a multiple of 4"
,
48
,
ELPA_AUTOTUNE_
MEDIUM
,
ELPA_AUTOTUNE_DOMAIN_REAL
,
INT_ENTRY
(
"stripewidth_real"
,
"Stripewidth_real, default 48. Must be a multiple of 4"
,
48
,
ELPA_AUTOTUNE_
EXTENSIVE
,
ELPA_AUTOTUNE_DOMAIN_REAL
,
stripewidth_real_cardinality
,
stripewidth_real_enumerate
,
stripewidth_real_is_valid
,
NULL
,
PRINT_YES
),
INT_ENTRY
(
"stripewidth_complex"
,
"Stripewidth_complex, default 96. Must be a multiple of 8"
,
96
,
ELPA_AUTOTUNE_
MEDIUM
,
ELPA_AUTOTUNE_DOMAIN_COMPLEX
,
INT_ENTRY
(
"stripewidth_complex"
,
"Stripewidth_complex, default 96. Must be a multiple of 8"
,
96
,
ELPA_AUTOTUNE_
EXTENSIVE
,
ELPA_AUTOTUNE_DOMAIN_COMPLEX
,
stripewidth_complex_cardinality
,
stripewidth_complex_enumerate
,
stripewidth_complex_is_valid
,
NULL
,
PRINT_YES
),
INT_ENTRY
(
"max_stored_rows"
,
"Maximum number of stored rows used in ELPA 1 backtransformation, default 63"
,
63
,
ELPA_AUTOTUNE_MEDIUM
,
ELPA_AUTOTUNE_DOMAIN_ANY
,
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment