Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
hpc-compendium
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ZIH
hpcsupport
hpc-compendium
Commits
2286ebae
Commit
2286ebae
authored
1 year ago
by
Markus Velten
Browse files
Options
Downloads
Patches
Plain Diff
edits for issue 530
parent
4cea72c4
No related branches found
Branches containing commit
No related tags found
2 merge requests
!938
Automated merge from preview to main
,
!936
Update to Five-Cluster-Operation
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc.zih.tu-dresden.de/docs/software/compilers.md
+23
-13
23 additions, 13 deletions
doc.zih.tu-dresden.de/docs/software/compilers.md
with
23 additions
and
13 deletions
doc.zih.tu-dresden.de/docs/software/compilers.md
+
23
−
13
View file @
2286ebae
...
...
@@ -67,19 +67,29 @@ Different architectures of CPUs feature different vector extensions (like SSE4.2
to accelerate computations.
The following matrix shows proper compiler flags for the architectures at the ZIH:
| HPC System | Architecture | GCC | Intel |
PGI
|
| HPC System | Architecture | GCC | Intel |
Nvidia HPC
|
|------------|--------------------|----------------------|----------------------|-----|
|
[
`Alpha Centauri`
](
../jobs_and_resources/alpha_centauri.md
)
| AMD Rome |
`-march=znver2`
|
`-march=core-avx2`
|
`-tp=zen`
|
|
[
`Barnard`
](
../jobs_and_resources/barnard.md
)
| AMD Sapphire Rapids |
`-march=znver2`
|
`-march=core-avx2`
|
`-tp=zen`
|
|
[
`Julia`
](
../jobs_and_resources/julia.md
)
| Intel Cascade Lake |
`-march=cascadelake`
|
`-march=cascadelake`
|
`-tp=skylake`
|
|
[
`Power9`
](
../jobs_and_resources/power9.md
)
| IBM Power9 |
`-march=znver2`
|
`-march=core-avx2`
|
`-tp=zen`
|
|
[
`Romeo`
](
../jobs_and_resources/romeo.md
)
| AMD Rome |
`-march=znver2`
|
`-march=core-avx2`
|
`-tp=zen`
|
| All | Host's architecture |
`-march=native`
|
`-xHost`
| |
To build an executable for different node types (e.g. Cascade Lake with AVX512 and
Haswell without AVX512) the option
`-march=haswell -axcascadelake`
(for Intel compilers)
uses vector extension up to AVX2 as default path and runs along a different execution
path if AVX512 is available.
|
[
`Alpha Centauri`
](
../jobs_and_resources/alpha_centauri.md
)
| AMD Rome |
`-march=znver2`
|
`-march=core-avx2`
|
`-tp=zen2`
|
|
[
`Barnard`
](
../jobs_and_resources/barnard.md
)
| AMD Sapphire Rapids |
`-march=sapphirerapids`
|
`-march=core-sapphirerapids`
| |
|
[
`Julia`
](
../jobs_and_resources/julia.md
)
| Intel Cascade Lake |
`-march=cascadelake`
|
`-march=cascadelake`
|
`-tp=cascadelake`
|
|
[
`Romeo`
](
../jobs_and_resources/romeo.md
)
| AMD Rome |
`-march=znver2`
|
`-march=core-avx2`
|
`-tp=zen2`
|
| All x86 | Host's architecture |
`-march=native`
|
`-xHost`
or
`-march=native`
|
`-tp=host`
|
|
[
`Power9`
](
../jobs_and_resources/power9.md
)
| IBM Power9 |
`-mcpu=power9`
or
`-mcpu=native`
| |
`-tp=pwr9`
or
`-tp=host`
|
To build an executable for different node types with the Intel compiler, use
`-axcode`
, where
`code`
is to be replaced with one or more target architectures.
For Cascade Lake and Sapphire Rapids. the option
`-axcascadelake,sapphirerapids`
(for Intel compilers) instructs the compiler to optimized code paths for the
specified architecture(s), if possible.
If the application is executed on one of these architectures, the optimized code
path will be chosen.
A baseline code path will also be generated.
This path is used on other architectures than the specified ones and is used
in code sections that were not optimized by the compiler for a specific architecture.
Other optimization flags can be used as well for, e.g.
`-O3`
.
However, the
`-march`
option cannot be used here, as this will overwrite the
`-axcode`
option.
This increases the size of the program code (might result in
poorer L1 instruction cache hits) but enables to run the same program on
different hardware types.
different hardware types
with compiler optimizations
.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment