10
10
# Khronos OpenCL ICD
11
11
- OPENCL_REGISTRY=https://www.khronos.org/registry/OpenCL/
12
12
- OPENCL_ROOT=${DEPS_DIR}/opencl
13
+ - OPENCL_ICD_LIB=${OPENCL_ROOT}/icd/build/lib/libOpenCL.so
13
14
# POCL
14
15
- POCL_BRANCH=release_1_2 # branch/tag
15
16
- POCL_LLVM_VERSION=7.0.0
19
20
- POCL_C_COMPILER=${DEPS_DIR}/llvm-${POCL_LLVM_VERSION}/bin/clang
20
21
- POCL_OPENCL_LIB=${POCL_ROOT}/lib/libOpenCL.so
21
22
# Global build options and C++ flags
22
- - GCC_VERSION=5
23
+ - GCC_VERSION=5
23
24
- CMAKE_OPTIONS="-DBOOST_COMPUTE_BUILD_TESTS=ON -DBOOST_COMPUTE_BUILD_EXAMPLES=ON -DBOOST_COMPUTE_BUILD_BENCHMARKS=ON -DBOOST_COMPUTE_USE_OFFLINE_CACHE=ON -DBOOST_COMPUTE_HAVE_OPENCV=ON -DBOOST_COMPUTE_THREAD_SAFE=ON"
24
25
- CXX_FLAGS="-Wall -pedantic -Werror -Wno-variadic-macros -Wno-long-long -Wno-shadow -DCI_BUILD"
25
26
# Boost
@@ -104,47 +105,189 @@ matrix:
104
105
- OPENCL_LIB=pocl
105
106
- ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=101"
106
107
- ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
107
- # Xenial, OpenCL 1.2, New Boost Libs, C++11, Coverage
108
+ # Xenial, OpenCL 1.2
108
109
# CLANG
109
110
- os : linux
110
111
dist : xenial
111
112
compiler : clang
112
113
addons :
113
114
apt :
114
- packages : &xenial_pocl_packages_latest_boost
115
+ packages : *xenial_pocl_packages
116
+ sources : *xenial_pocl_sources
117
+ env :
118
+ - OPENCL_LIB=pocl
119
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102"
120
+ - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
121
+ # GCC
122
+ - os : linux
123
+ dist : xenial
124
+ compiler : gcc
125
+ addons :
126
+ apt :
127
+ packages : *xenial_pocl_packages
128
+ sources : *xenial_pocl_sources
129
+ env :
130
+ - OPENCL_LIB=pocl
131
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102"
132
+ - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON"
133
+
134
+ # ###########################################################################
135
+ # Intel OpenCL Runtime builds (1.2, 2.0, 2.1)
136
+ # ###########################################################################
137
+
138
+ # Linux, Intel OpenCL 1.2
139
+ # CLANG
140
+ - os : linux
141
+ dist : xenial
142
+ compiler : clang
143
+ addons :
144
+ apt :
145
+ packages : &xenial_intel_packages
115
146
- g++-5
116
- # POCL
117
- - libltdl-dev
118
- - libhwloc-dev
119
- - pkg-config
120
- - libedit-dev
147
+ # Boost
148
+ - libboost-chrono1.58-dev
149
+ - libboost-date-time1.58-dev
150
+ - libboost-test1.58-dev
151
+ - libboost-system1.58-dev
152
+ - libboost-filesystem1.58-dev
153
+ - libboost-timer1.58-dev
154
+ - libboost-program-options1.58-dev
155
+ - libboost-thread1.58-dev
121
156
# Misc
122
157
- python-yaml
123
158
- lcov
124
159
- libopencv-dev
125
- sources : &xenial_pocl_sources_latest_boost
160
+ sources : &xenial_intel_sources
126
161
- ubuntu-toolchain-r-test
127
162
env :
128
- - OPENCL_LIB=pocl
129
- - BOOST_VERSION="1_67_0"
130
- - BOOST_URL="https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz"
131
- - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102"
132
- - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON"
163
+ - OPENCL_LIB=intel
164
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102"
165
+ - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
133
166
# GCC
134
167
- os : linux
135
168
dist : xenial
136
169
compiler : gcc
137
170
addons :
138
171
apt :
139
- packages : *xenial_pocl_packages_latest_boost
140
- sources : *xenial_pocl_sources_latest_boost
172
+ packages : *xenial_intel_packages
173
+ sources : *xenial_intel_sources
141
174
env :
142
- - OPENCL_LIB=pocl
143
- - COVERAGE=true
144
- - BOOST_VERSION="1_67_0"
145
- - BOOST_URL="https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz"
146
- - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102"
147
- - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${POCL_OPENCL_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON"
175
+ - OPENCL_LIB=intel
176
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=102"
177
+ - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
178
+ # Linux, Intel OpenCL 2.0
179
+ # CLANG
180
+ - os : linux
181
+ dist : xenial
182
+ compiler : clang
183
+ addons :
184
+ apt :
185
+ packages : *xenial_intel_packages
186
+ sources : *xenial_intel_sources
187
+ env :
188
+ - OPENCL_LIB=intel
189
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200"
190
+ - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
191
+ # GCC
192
+ - os : linux
193
+ dist : xenial
194
+ compiler : gcc
195
+ addons :
196
+ apt :
197
+ packages : *xenial_intel_packages
198
+ sources : *xenial_intel_sources
199
+ env :
200
+ - OPENCL_LIB=intel
201
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=200"
202
+ - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include"
203
+ # Linux, Intel OpenCL 2.1, New Boost Libs, C++11, Coverage
204
+ # CLANG
205
+ - os : linux
206
+ dist : xenial
207
+ compiler : clang
208
+ cache :
209
+ ccache : true
210
+ directories :
211
+ - ${DEPS_DIR}/boost
212
+ addons :
213
+ apt :
214
+ packages : &xenial_intel_latest_boost_packages
215
+ - g++-5
216
+ # Misc
217
+ - python-yaml
218
+ - lcov
219
+ - libopencv-dev
220
+ sources : &xenial_intel_latest_boost_sources
221
+ - ubuntu-toolchain-r-test
222
+ env :
223
+ - OPENCL_LIB=intel
224
+ - BOOST_VERSION="1_67_0"
225
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=201"
226
+ - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON"
227
+ # GCC
228
+ - os : linux
229
+ dist : xenial
230
+ compiler : gcc
231
+ cache :
232
+ ccache : true
233
+ directories :
234
+ - ${DEPS_DIR}/boost
235
+ addons :
236
+ apt :
237
+ packages : *xenial_intel_latest_boost_packages
238
+ sources : *xenial_intel_latest_boost_sources
239
+ env :
240
+ - OPENCL_LIB=intel
241
+ - BOOST_VERSION="1_67_0"
242
+ - COVERAGE=true
243
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=201"
244
+ - ENV_CMAKE_OPTIONS="-DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_ENABLE_COVERAGE=ON -DBOOST_COMPUTE_USE_CPP11=ON"
245
+ - COVERAGE=true
246
+
247
+ # ###########################################################################
248
+ # OpenCL 2.2 Only Build
249
+ # ###########################################################################
250
+
251
+ # Linux, OpenCL 2.2, Tests not run, C++11
252
+ # CLANG
253
+ - os : linux
254
+ dist : xenial
255
+ compiler : clang
256
+ addons :
257
+ apt :
258
+ packages : &xenial_packages
259
+ - g++-5
260
+ # Boost
261
+ - libboost-chrono1.58-dev
262
+ - libboost-date-time1.58-dev
263
+ - libboost-test1.58-dev
264
+ - libboost-system1.58-dev
265
+ - libboost-filesystem1.58-dev
266
+ - libboost-timer1.58-dev
267
+ - libboost-program-options1.58-dev
268
+ - libboost-thread1.58-dev
269
+ # Misc
270
+ - libopencv-dev
271
+ sources : &xenial_sources
272
+ - ubuntu-toolchain-r-test
273
+ env :
274
+ - OPENCL_LIB=khronos-icd
275
+ - RUN_TESTS=false
276
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=202"
277
+ - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ICD_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON"
278
+ # GCC
279
+ - os : linux
280
+ dist : xenial
281
+ compiler : gcc
282
+ addons :
283
+ apt :
284
+ packages : *xenial_packages
285
+ sources : *xenial_sources
286
+ env :
287
+ - OPENCL_LIB=khronos-icd
288
+ - RUN_TESTS=false
289
+ - ENV_CXX_FLAGS="-Wno-unused-local-typedef -DBOOST_COMPUTE_MAX_CL_VERSION=202"
290
+ - ENV_CMAKE_OPTIONS="-DOpenCL_LIBRARY=${OPENCL_ICD_LIB} -DOpenCL_INCLUDE_DIR=${OPENCL_ROOT}/include -DBOOST_COMPUTE_USE_CPP11=ON"
148
291
149
292
# ###########################################################################
150
293
# OSX
@@ -194,7 +337,7 @@ before_install:
194
337
195
338
install :
196
339
# ###########################################################################
197
- # Download and install recent CMake
340
+ # Download and install recent CMake
198
341
# ###########################################################################
199
342
- |
200
343
if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
@@ -205,7 +348,7 @@ install:
205
348
fi
206
349
207
350
# ###########################################################################
208
- # Download and install Boost
351
+ # Download and install Boost
209
352
# ###########################################################################
210
353
- |
211
354
if [[ ${TRAVIS_OS_NAME} == "linux" && ${BOOST_VERSION} != "default" ]]; then
@@ -215,6 +358,8 @@ install:
215
358
mkdir -p ${DEPS_DIR}/boost
216
359
rm -rf ${DEPS_DIR}/boost/*
217
360
# Download
361
+ BOOST_BASENAME=$(echo ${BOOST_VERSION} | awk -F '_' '{print $1 "." $2 "." $3 }')
362
+ BOOST_URL="https://dl.bintray.com/boostorg/release/${BOOST_BASENAME}/source/boost_${BOOST_VERSION}.tar.gz"
218
363
travis_retry wget --no-check-certificate --quiet -O - ${BOOST_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/boost${BOOST_VERSION}
219
364
pushd ${DEPS_DIR}/boost${BOOST_VERSION}
220
365
# Configure and install
@@ -243,6 +388,22 @@ install:
243
388
popd
244
389
fi
245
390
391
+ # ###########################################################################
392
+ # Only ICD
393
+ # ###########################################################################
394
+ - |
395
+ if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "khronos-icd" ]]; then
396
+ mkdir -p ${OPENCL_ROOT}
397
+ pushd ${OPENCL_ROOT}
398
+ travis_retry git clone --depth 1 https://github.com/KhronosGroup/OpenCL-ICD-Loader.git icd
399
+ pushd icd
400
+ mkdir -p inc/CL
401
+ cp ${OPENCL_ROOT}/include/CL/* ./inc/CL/
402
+ make -j2
403
+ popd
404
+ popd
405
+ fi
406
+
246
407
# ###########################################################################
247
408
# Build and install POCL https://github.com/pocl/pocl
248
409
# ###########################################################################
@@ -254,13 +415,27 @@ install:
254
415
mkdir build
255
416
cd build
256
417
cmake -DDIRECT_LINKAGE=ON -DENABLE_ICD=OFF -DCMAKE_C_COMPILER=${POCL_C_COMPILER} -DCMAKE_CXX_COMPILER=${POCL_CXX_COMPILER} -DWITH_LLVM_CONFIG=${POCL_LLVM_CONFIG} -DCMAKE_INSTALL_PREFIX=${POCL_ROOT}/ ..
257
- make install
418
+ make -j2 install
258
419
cd ../..
259
420
else
260
421
echo 'Using cached POCL lib.'
261
422
fi
262
423
fi
263
424
425
+ # ###########################################################################
426
+ # Install Intel OpenCL Runtime
427
+ # ###########################################################################
428
+ - |
429
+ if [[ ${TRAVIS_OS_NAME} == "linux" && ${OPENCL_LIB} == "intel" ]]; then
430
+ # https://software.intel.com/en-us/articles/opencl-drivers#cpu-section
431
+ PACKAGE_URL=http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/13793/l_opencl_p_18.1.0.013.tgz
432
+ PACKAGE_NAME=l_opencl_p_18.1.0.013
433
+ wget -q ${PACKAGE_URL} -O /tmp/opencl_runtime.tgz
434
+ tar -xzf /tmp/opencl_runtime.tgz -C /tmp
435
+ sed 's/decline/accept/g' -i /tmp/${PACKAGE_NAME}/silent.cfg
436
+ sudo /tmp/${PACKAGE_NAME}/install.sh -s /tmp/${PACKAGE_NAME}/silent.cfg
437
+ fi
438
+
264
439
script :
265
440
# ###########################################################################
266
441
# Build Boost.Compute tests, benchmarks and examples
@@ -285,4 +460,4 @@ after_success:
285
460
lcov --directory test --base-directory ../include/boost/compute/ --capture --output-file coverage.info
286
461
lcov --remove coverage.info '/usr*' '*/test/*' '*/deps/*' -o coverage.info
287
462
cd .. && coveralls-lcov build/coverage.info
288
- fi
463
+ fi
0 commit comments