|
4 | 4 | # See file LICENSE for terms.
|
5 | 5 | #
|
6 | 6 |
|
| 7 | +ROCM_ARCH_NATIVE="--offload-arch=native" |
| 8 | +ROCM_ARCH908="--offload-arch=gfx908" |
| 9 | +ROCM_ARCH90A="--offload-arch=gfx90a" |
| 10 | +ROCM_ARCH94="--offload-arch=gfx940 \ |
| 11 | +--offload-arch=gfx941 \ |
| 12 | +--offload-arch=gfx942" |
| 13 | +ROCM_ARCH10="--offload-arch=gfx1030" |
| 14 | +ROCM_ARCH11="--offload-arch=gfx1100 \ |
| 15 | +--offload-arch=gfx1101 \ |
| 16 | +--offload-arch=gfx1102" |
| 17 | + |
7 | 18 | # ROCM_PARSE_FLAGS(ARG, VAR_LIBS, VAR_LDFLAGS, VAR_CPPFLAGS)
|
8 | 19 | # ----------------------------------------------------------
|
9 | 20 | # Parse whitespace-separated ARG into appropriate LIBS, LDFLAGS, and
|
@@ -73,7 +84,12 @@ AC_ARG_WITH([rocm],
|
73 | 84 | [Enable the use of ROCm (default is autodetect).])],
|
74 | 85 | [],
|
75 | 86 | [with_rocm=guess])
|
76 |
| -
|
| 87 | +AC_ARG_WITH([rocm-arch], |
| 88 | + [AS_HELP_STRING([--with-rocm-arch=arch-code], |
| 89 | + [Defines target GPU architecture, |
| 90 | + see rocm documentation for valid --offload-arch options for details |
| 91 | + 'all-arch-no-native' for all default architectures but not native])], |
| 92 | + [], [with_rocm_arch=all]) |
77 | 93 | rocm_happy=no
|
78 | 94 | hip_happy=no
|
79 | 95 | AS_IF([test "x$with_rocm" != "xno"],
|
@@ -115,15 +131,26 @@ AS_IF([test "x$with_rocm" != "xno"],
|
115 | 131 | AC_SUBST([ROCM_ROOT])],
|
116 | 132 | [AC_MSG_WARN([ROCm not found])])
|
117 | 133 |
|
| 134 | +
|
| 135 | + # Check whether we run on ROCm 6.0 or higher |
| 136 | + CHECK_ROCM_VERSION(6, ROCM_VERSION_60_OR_GREATER) |
| 137 | + AC_MSG_CHECKING([if ROCm version is 6.0 or above]) |
| 138 | +
|
| 139 | + AS_IF([test "x$rocm_happy" = "xyes"], |
| 140 | + [AS_IF([test "x$with_rocm_arch" = "xall"], |
| 141 | + [ROCM_ARCH="${ROCM_ARCH908} ${ROCM_ARCH90A} ${ROCM_ARCH94} ${ROCM_ARCH10} ${ROCM_ARCH11} ${ROCM_ARCH_NATIVE}"], |
| 142 | + [AS_IF([test "x$with_rocm_arch" = "xall-arch-no-native"], |
| 143 | + [ROCM_ARCH="${ROCM_ARCH908} ${ROCM_ARCH90A} ${ROCM_ARCH94} ${ROCM_ARCH10} ${ROCM_ARCH11}"], |
| 144 | + [ROCM_ARCH="$with_rocm_arch"])]) |
| 145 | + AS_IF([test "$ROCM_VERSION_60_OR_GREATER" = "1"], |
| 146 | + AC_SUBST([ROCM_ARCH], ["$ROCM_ARCH"]), |
| 147 | + AC_SUBST([ROCM_ARCH], [""]))]) |
118 | 148 | CPPFLAGS="$SAVE_CPPFLAGS"
|
119 | 149 | LDFLAGS="$SAVE_LDFLAGS"
|
120 | 150 | LIBS="$SAVE_LIBS"
|
121 | 151 |
|
122 | 152 | HIP_BUILD_FLAGS([$with_rocm], [HIP_LIBS], [HIP_LDFLAGS], [HIP_CPPFLAGS])
|
123 | 153 |
|
124 |
| - # Check whether we run on ROCm 6.0 or higher |
125 |
| - CHECK_ROCM_VERSION(6, ROCM_VERSION_60_OR_GREATER) |
126 |
| - AC_MSG_CHECKING([if ROCm version is 6.0 or above]) |
127 | 154 | if test "$ROCM_VERSION_60_OR_GREATER" = "1" ; then
|
128 | 155 | AC_MSG_RESULT([yes])
|
129 | 156 | else
|
|
0 commit comments