Skip to content

Commit 74a8b86

Browse files
committed
arch: support grace with gcc,arm and nvc
1 parent caaac39 commit 74a8b86

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

devito/arch/archinfo.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
# ARM CPUs
3030
'ARM', 'AppleArm', 'M1', 'M2', 'M3',
3131
'Graviton', 'GRAVITON2', 'GRAVITON3', 'GRAVITON4',
32-
'Cortex',
32+
'Cortex', 'NvidiaArm', 'GRACE',
3333
# Other legacy CPUs
3434
'POWER8', 'POWER9',
3535
# Generic GPUs
@@ -811,6 +811,16 @@ def mtune(self):
811811
return f'cortex-a{self.version}'
812812

813813

814+
class NvidiaArm(Arm):
815+
816+
@cached_property
817+
def march(self):
818+
if self.name == 'grace':
819+
return 'neoverse-v2'
820+
else:
821+
return 'native'
822+
823+
814824
class Amd(Cpu64):
815825

816826
known_isas = ('cpp', 'sse', 'avx', 'avx2')
@@ -1027,6 +1037,7 @@ def march(cls):
10271037
M3 = AppleArm('m3')
10281038
CORTEX = Cortex('cortex')
10291039
CORTEXA76 = Cortex('cortexa76')
1040+
GRACE = NvidiaArm('grace')
10301041

10311042
AMD = Amd('amd')
10321043

devito/arch/compiler.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
call_capture_output as _call_capture_output)
1515

1616
from devito.arch import (AMDGPUX, Cpu64, AppleArm, NvidiaDevice, POWER8, POWER9,
17-
Graviton, Cortex, IntelDevice, get_nvidia_cc,
17+
Graviton, Cortex, IntelDevice, get_nvidia_cc, NvidiaArm,
1818
check_cuda_runtime, get_m1_llvm_path)
1919
from devito.exceptions import CompilationError
2020
from devito.logger import debug, warning
@@ -439,7 +439,7 @@ def __init_finalize__(self, **kwargs):
439439
if platform in [POWER8, POWER9]:
440440
# -march isn't supported on power architectures, is -mtune needed?
441441
self.cflags = ['-mcpu=native'] + self.cflags
442-
elif isinstance(platform, Graviton):
442+
elif isinstance(platform, (Graviton, NvidiaArm)):
443443
self.cflags = [f'-mcpu={platform.march}'] + self.cflags
444444
elif isinstance(platform, Cortex):
445445
self.cflags += [f'-march={platform.march}']
@@ -614,6 +614,8 @@ def __init_finalize__(self, **kwargs):
614614
elif isinstance(platform, Cpu64):
615615
if language == 'openmp':
616616
self.cflags.append('-mp')
617+
if isinstance(platform, NvidiaArm):
618+
self.cflags.append(f'-mcpu={platform.march}')
617619

618620
if not configuration['safe-math']:
619621
self.cflags.append('-fast')

0 commit comments

Comments
 (0)