Skip to content

Commit 7e1d378

Browse files
authored
Suggested determination of OpenCL Target Version (Closes #9) (#11)
* Suggested determination of OpenCL Target Version * Tweaks based on code review
1 parent 8be42b7 commit 7e1d378

3 files changed

Lines changed: 47 additions & 23 deletions

File tree

configure

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,7 @@ ac_includes_default="\
639639
ac_header_cxx_list=
640640
ac_subst_vars='LTLIBOBJS
641641
LIBOBJS
642+
OPENCL_TARGET_VERSION
642643
SDKPATH
643644
CUDA_HOME
644645
CLBLAS_PREFIX
@@ -4581,6 +4582,9 @@ CLBLAS_PREFIX=""
45814582
CUDA_HOME=""
45824583
SDKPATH=""
45834584

4585+
## Use common current version on non-macOS systems
4586+
OPENCL_TARGET_VERSION=300
4587+
45844588
## =============================================================================
45854589
## OpenCL Detection
45864590
## =============================================================================
@@ -4668,6 +4672,10 @@ printf "%s\n" "$as_me: WARNING: You may need to install Xcode Command Line Tools
46684672
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Or use CUDA if you have an NVIDIA GPU" >&5
46694673
printf "%s\n" "$as_me: WARNING: Or use CUDA if you have an NVIDIA GPU" >&2;}
46704674
fi
4675+
4676+
## Use minimum version to match OpenCL on macOS
4677+
OPENCL_TARGET_VERSION=120
4678+
46714679
else
46724680
## Linux/Unix: Check for CL/opencl.h header
46734681
ac_header= ac_cache=
@@ -5254,22 +5262,24 @@ fi
52545262
printf "%s\n" "$as_me: " >&6;}
52555263
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: GPU Backend Configuration Summary:" >&5
52565264
printf "%s\n" "$as_me: GPU Backend Configuration Summary:" >&6;}
5257-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Platform: ${RSysinfoName}" >&5
5258-
printf "%s\n" "$as_me: Platform: ${RSysinfoName}" >&6;}
5259-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: C++ Standard: C++14" >&5
5260-
printf "%s\n" "$as_me: C++ Standard: C++14" >&6;}
5261-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: OpenCL: ${HAVE_OPENCL}" >&5
5262-
printf "%s\n" "$as_me: OpenCL: ${HAVE_OPENCL}" >&6;}
5265+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Platform: ${RSysinfoName}" >&5
5266+
printf "%s\n" "$as_me: Platform: ${RSysinfoName}" >&6;}
5267+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: C++ Standard: C++14" >&5
5268+
printf "%s\n" "$as_me: C++ Standard: C++14" >&6;}
5269+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: OpenCL: ${HAVE_OPENCL}" >&5
5270+
printf "%s\n" "$as_me: OpenCL: ${HAVE_OPENCL}" >&6;}
52635271
if test "x${HAVE_OPENCL}" = x1; then
5264-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: CLBlast: ${HAVE_CLBLAST}" >&5
5265-
printf "%s\n" "$as_me: CLBlast: ${HAVE_CLBLAST}" >&6;}
5266-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: clBLAS: ${HAVE_CLBLAS}" >&5
5267-
printf "%s\n" "$as_me: clBLAS: ${HAVE_CLBLAS}" >&6;}
5268-
fi
5269-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: CUDA: ${HAVE_CUDA}" >&5
5270-
printf "%s\n" "$as_me: CUDA: ${HAVE_CUDA}" >&6;}
5271-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Default: ${DEFAULT_BACKEND}" >&5
5272-
printf "%s\n" "$as_me: Default: ${DEFAULT_BACKEND}" >&6;}
5272+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: CLBlast: ${HAVE_CLBLAST}" >&5
5273+
printf "%s\n" "$as_me: CLBlast: ${HAVE_CLBLAST}" >&6;}
5274+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: clBLAS: ${HAVE_CLBLAS}" >&5
5275+
printf "%s\n" "$as_me: clBLAS: ${HAVE_CLBLAS}" >&6;}
5276+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: OpenCL Target: ${OPENCL_TARGET_VERSION}" >&5
5277+
printf "%s\n" "$as_me: OpenCL Target: ${OPENCL_TARGET_VERSION}" >&6;}
5278+
fi
5279+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: CUDA: ${HAVE_CUDA}" >&5
5280+
printf "%s\n" "$as_me: CUDA: ${HAVE_CUDA}" >&6;}
5281+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Default: ${DEFAULT_BACKEND}" >&5
5282+
printf "%s\n" "$as_me: Default: ${DEFAULT_BACKEND}" >&6;}
52735283
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: " >&5
52745284
printf "%s\n" "$as_me: " >&6;}
52755285

@@ -5352,6 +5362,9 @@ BANDICOOT_LIBS="${BANDICOOT_LIBS} ${LAPACK_BLAS_LIBS}"
53525362

53535363

53545364

5365+
## OpenCL target version
5366+
5367+
53555368
ac_config_files="$ac_config_files src/Makevars R/flags.R"
53565369

53575370
cat >confcache <<\_ACEOF

configure.ac

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ CLBLAS_PREFIX=""
9696
CUDA_HOME=""
9797
SDKPATH=""
9898

99+
## Use common current version on non-macOS systems
100+
OPENCL_TARGET_VERSION=300
101+
99102
## =============================================================================
100103
## OpenCL Detection
101104
## =============================================================================
@@ -157,6 +160,10 @@ if test x"${is_macos}" = x"yes"; then
157160
AC_MSG_WARN([You may need to install Xcode Command Line Tools: xcode-select --install])
158161
AC_MSG_WARN([Or use CUDA if you have an NVIDIA GPU])
159162
fi
163+
164+
## Use minimum version to match OpenCL on macOS
165+
OPENCL_TARGET_VERSION=120
166+
160167
else
161168
## Linux/Unix: Check for CL/opencl.h header
162169
AC_CHECK_HEADER([CL/opencl.h],
@@ -382,15 +389,16 @@ fi
382389

383390
AC_MSG_NOTICE([])
384391
AC_MSG_NOTICE([GPU Backend Configuration Summary:])
385-
AC_MSG_NOTICE([ Platform: ${RSysinfoName}])
386-
AC_MSG_NOTICE([ C++ Standard: C++14])
387-
AC_MSG_NOTICE([ OpenCL: ${HAVE_OPENCL}])
392+
AC_MSG_NOTICE([ Platform: ${RSysinfoName}])
393+
AC_MSG_NOTICE([ C++ Standard: C++14])
394+
AC_MSG_NOTICE([ OpenCL: ${HAVE_OPENCL}])
388395
if test "x${HAVE_OPENCL}" = x1; then
389-
AC_MSG_NOTICE([ CLBlast: ${HAVE_CLBLAST}])
390-
AC_MSG_NOTICE([ clBLAS: ${HAVE_CLBLAS}])
396+
AC_MSG_NOTICE([ CLBlast: ${HAVE_CLBLAST}])
397+
AC_MSG_NOTICE([ clBLAS: ${HAVE_CLBLAS}])
398+
AC_MSG_NOTICE([ OpenCL Target: ${OPENCL_TARGET_VERSION}])
391399
fi
392-
AC_MSG_NOTICE([ CUDA: ${HAVE_CUDA}])
393-
AC_MSG_NOTICE([ Default: ${DEFAULT_BACKEND}])
400+
AC_MSG_NOTICE([ CUDA: ${HAVE_CUDA}])
401+
AC_MSG_NOTICE([ Default: ${DEFAULT_BACKEND}])
394402
AC_MSG_NOTICE([])
395403

396404
## =============================================================================
@@ -467,5 +475,8 @@ AC_SUBST([CLBLAS_PREFIX])
467475
AC_SUBST([CUDA_HOME])
468476
AC_SUBST([SDKPATH])
469477

478+
## OpenCL target version
479+
AC_SUBST([OPENCL_TARGET_VERSION])
480+
470481
AC_CONFIG_FILES([src/Makevars R/flags.R])
471482
AC_OUTPUT

src/Makevars.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## This file is processed by configure to generate Makevars
44
## It includes GPU backend configuration (OpenCL, CUDA) and other settings
55

6-
PKG_CPPFLAGS = -I../inst/include
6+
PKG_CPPFLAGS = -I../inst/include -DCL_TARGET_OPENCL_VERSION=@OPENCL_TARGET_VERSION@
77

88
## Compiler flags from configure
99
PKG_CXXFLAGS = @BANDICOOT_CXXFLAGS@ @OPENMP_CXXFLAGS@

0 commit comments

Comments
 (0)