目次
Raspberry Pi Zero WH VideoCore IV GPU で OpenCL🤤
ビルド依存パッケージのインストール
$ sudo apt update && sudo apt upgrade
Hit:1 https://dietpi.com/apt bookworm InRelease Hit:2 https://dietpi.com/apt all InRelease Get:3 http://raspbian.raspberrypi.com/raspbian bookworm InRelease [15.0 kB] Get:4 https://archive.raspberrypi.com/debian bookworm InRelease [23.6 kB] Get:5 http://raspbian.raspberrypi.com/raspbian bookworm/main Sources [13.7 MB] Get:6 https://archive.raspberrypi.com/debian bookworm/main armhf Packages [392 kB] Get:7 https://archive.raspberrypi.com/debian bookworm/main armhf Contents (deb) [2,994 kB] Get:8 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf Packages [14.5 MB] Fetched 31.7 MB in 1min 48s (292 kB/s) Reading package lists... Done Building dependency tree... Done Reading state information... Done All packages are up to date. Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install cmake git
Reading package lists... Done Building dependency tree... Done Reading state information... Done cmake is already the newest version (3.25.1-1). git is already the newest version (1:2.39.2-1.1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install opencl-headers
Reading package lists... Done Building dependency tree... Done Reading state information... Done opencl-headers is already the newest version (3.0~2023.02.06-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install ocl-icd-opencl-dev ocl-icd-dev
Reading package lists... Done Building dependency tree... Done Reading state information... Done ocl-icd-opencl-dev is already the newest version (2.3.1-1). ocl-icd-dev is already the newest version (2.3.1-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install libraspberrypi-dev
Reading package lists... Done Building dependency tree... Done Reading state information... Done libraspberrypi-dev is already the newest version (1:2+git20231018~131943+3c97f76-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install clang-14 clang-format-14 clang-tidy-14
Reading package lists... Done Building dependency tree... Done Reading state information... Done clang-14 is already the newest version (1:14.0.6-12+rpi1). clang-14 set to manually installed. clang-format-14 is already the newest version (1:14.0.6-12+rpi1). clang-format-14 set to manually installed. clang-tidy-14 is already the newest version (1:14.0.6-12+rpi1). clang-tidy-14 set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo apt install llvm-14 libllvm14 llvm-14-dev libllvmspirvlib-14-dev libllvmspirvlib14
Reading package lists... Done Building dependency tree... Done Reading state information... Done llvm-14 is already the newest version (1:14.0.6-12+rpi1). libllvm14 is already the newest version (1:14.0.6-12+rpi1). libllvmspirvlib-14-dev is already the newest version (14.0.0-5+rpi1). libllvmspirvlib14 is already the newest version (14.0.0-5+rpi1). The following additional packages will be installed: libz3-dev llvm-14-tools python3-pygments Suggested packages: python-pygments-doc ttf-bitstream-vera The following NEW packages will be installed: libz3-dev llvm-14-dev llvm-14-tools python3-pygments 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 35.1 MB of archives. After this operation, 252 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bookworm/main armhf libz3-dev armhf 4.8.12-3.1 [90.6 kB] Get:2 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-pygments all 2.14.0+dfsg-1 [783 kB] Get:3 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf llvm-14-tools armhf 1:14.0.6-12+rpi1 [361 kB] Get:4 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf llvm-14-dev armhf 1:14.0.6-12+rpi1 [33.9 MB] Fetched 35.1 MB in 2min 29s (236 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libz3-dev:armhf. (Reading database ... 141885 files and directories currently installed.) Preparing to unpack .../libz3-dev_4.8.12-3.1_armhf.deb ... Unpacking libz3-dev:armhf (4.8.12-3.1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../python3-pygments_2.14.0+dfsg-1_all.deb ... Unpacking python3-pygments (2.14.0+dfsg-1) ... Selecting previously unselected package llvm-14-tools. Preparing to unpack .../llvm-14-tools_1%3a14.0.6-12+rpi1_armhf.deb ... Unpacking llvm-14-tools (1:14.0.6-12+rpi1) ... Selecting previously unselected package llvm-14-dev. Preparing to unpack .../llvm-14-dev_1%3a14.0.6-12+rpi1_armhf.deb ... Unpacking llvm-14-dev (1:14.0.6-12+rpi1) ... Setting up libz3-dev:armhf (4.8.12-3.1) ... Setting up python3-pygments (2.14.0+dfsg-1) ... Setting up llvm-14-tools (1:14.0.6-12+rpi1) ... Setting up llvm-14-dev (1:14.0.6-12+rpi1) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+rpt2+deb12u4) ...
$ sudo apt install clinfo
Reading package lists... Done Building dependency tree... Done Reading state information... Done clinfo is already the newest version (3.0.23.01.25-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
$ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-14 14
update-alternatives: using /usr/bin/clang-14 to provide /usr/bin/clang (clang) in auto mode
$ sudo update-alternatives --config clang
There is 1 choice for the alternative clang (providing /usr/bin/clang). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/clang-14 14 auto mode 1 /usr/bin/clang-14 14 manual mode Press <enter> to keep the current choice[*], or type selection number:
$ clang --version
Raspbian clang version 14.0.6 Target: arm-unknown-linux-gnueabihf Thread model: posix InstalledDir: /usr/bin
$ sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-14 14
update-alternatives: using /usr/bin/clang-format-14 to provide /usr/bin/clang-format (clang-format) in auto mode
$ sudo update-alternatives --config clang-format
There is 1 choice for the alternative clang-format (providing /usr/bin/clang-format). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/clang-format-14 14 auto mode 1 /usr/bin/clang-format-14 14 manual mode Press <enter> to keep the current choice[*], or type selection number:
$ clang-format --version
Raspbian clang-format version 14.0.6
$ sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-14 14
update-alternatives: using /usr/bin/llvm-config-14 to provide /usr/bin/llvm-config (llvm-config) in auto mode
$ sudo update-alternatives --config llvm-config
There is 1 choice for the alternative llvm-config (providing /usr/bin/llvm-config). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/llvm-config-14 14 auto mode 1 /usr/bin/llvm-config-14 14 manual mode Press <enter> to keep the current choice[*], or type selection number:
$ llvm-config --version
14.0.6
ソースコードからビルドする...🤔
ソースコードの clone …🤔
$ mkdir opencl && cd opencl
$ git clone --depth 1 https://github.com/doe300/VC4CLStdLib.git
Cloning into 'VC4CLStdLib'... remote: Enumerating objects: 38, done. remote: Counting objects: 100% (38/38), done. remote: Compressing objects: 100% (38/38), done. remote: Total 38 (delta 1), reused 14 (delta 0), pack-reused 0 Receiving objects: 100% (38/38), 151.65 KiB | 404.00 KiB/s, done. Resolving deltas: 100% (1/1), done.
$ git clone https://github.com/doe300/VC4C.git
Cloning into 'VC4C'... remote: Enumerating objects: 14476, done. remote: Counting objects: 100% (3209/3209), done. remote: Compressing objects: 100% (577/577), done. remote: Total 14476 (delta 2626), reused 3192 (delta 2616), pack-reused 11267 Receiving objects: 100% (14476/14476), 26.52 MiB | 369.00 KiB/s, done. Resolving deltas: 100% (11603/11603), done. Updating files: 100% (1607/1607), done.
$ git clone https://github.com/doe300/VC4CL.git
Cloning into 'VC4CL'... remote: Enumerating objects: 2119, done. remote: Counting objects: 100% (118/118), done. remote: Compressing objects: 100% (83/83), done. remote: Total 2119 (delta 40), reused 39 (delta 35), pack-reused 2001 Receiving objects: 100% (2119/2119), 1.05 MiB | 254.00 KiB/s, done. Resolving deltas: 100% (1657/1657), done.
VC4CLStdLib のビルド & インストール
$ cd VC4CLStdLib $ mkdir build && cd build $ cmake ..
-- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- build deb package... -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4CLStdLib/build
$ make
[100%] Linking C static library libVC4CLStdLib.a [100%] Built target VC4CLStdLib
$ sudo make install && sudo ldconfig
[100%] Built target VC4CLStdLib Install the project... -- Install configuration: "" -- Installing: /usr/local/include/vc4cl-stdlib -- Installing: /usr/local/include/vc4cl-stdlib/_atomics.h -- Installing: /usr/local/include/vc4cl-stdlib/opencl-c.h -- Installing: /usr/local/include/vc4cl-stdlib/_integer.h -- Installing: /usr/local/include/vc4cl-stdlib/defines.h -- Installing: /usr/local/include/vc4cl-stdlib/_printf.h -- Installing: /usr/local/include/vc4cl-stdlib/_spir_mangling.h -- Installing: /usr/local/include/vc4cl-stdlib/_config.h -- Installing: /usr/local/include/vc4cl-stdlib/_relational.h -- Installing: /usr/local/include/vc4cl-stdlib/_common.h -- Installing: /usr/local/include/vc4cl-stdlib/_work_items.h -- Installing: /usr/local/include/vc4cl-stdlib/_extensions.h -- Installing: /usr/local/include/vc4cl-stdlib/_geometric.h -- Installing: /usr/local/include/vc4cl-stdlib/_images.h -- Installing: /usr/local/include/vc4cl-stdlib/_overloads.h -- Installing: /usr/local/include/vc4cl-stdlib/_math.h -- Installing: /usr/local/include/vc4cl-stdlib/_vector.h -- Installing: /usr/local/include/vc4cl-stdlib/_intrinsics.h -- Installing: /usr/local/include/vc4cl-stdlib/_synchronization.h -- Installing: /usr/local/include/vc4cl-stdlib/_conversions.h -- Installing: /usr/local/include/vc4cl-stdlib/_clcxx_mangling.h -- Installing: /usr/local/include/vc4cl-stdlib/_float_float.h -- Installing: /usr/local/include/vc4cl-stdlib/_async.h -- Installing: /usr/local/include/vc4cl-stdlib/VC4CLStdLib.h
VC4C のビルド & インストール
$ cd ../../VC4C $ mkdir build && cd build $ cmake ..
CMake Deprecation Warning at CMakeLists.txt:4 (cmake_policy): The OLD behavior for policy CMP0026 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. -- VC4CL standard library headers found: /home/dietpi/opencl/VC4C/../VC4CLStdLib/include/ -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Using CMake 3.14+ FetchContent to include dependencies... -- CLang compiler found: /usr/bin/clang -- LLVM-dis found: /usr/bin/llvm-dis-14 -- LLVM-as found: /usr/bin/llvm-as-14 -- LLVM-link found: /usr/bin/llvm-link-14 -- Performing Test HAVE_FFI_CALL -- Performing Test HAVE_FFI_CALL - Success -- Found FFI: /usr/lib/arm-linux-gnueabihf/libffi.so -- Performing Test Terminfo_LINKABLE -- Performing Test Terminfo_LINKABLE - Success -- Found Terminfo: /usr/lib/arm-linux-gnueabihf/libtinfo.so -- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.13") -- Found LibXml2: /usr/lib/arm-linux-gnueabihf/libxml2.so (found version "2.9.14") -- Compiling LLVM library front-end with LLVM in version 14.0.6 located in '/usr/lib/llvm-14/lib' -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- found clang-format: /usr/bin/clang-format -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build
$ make
[ 1%] Creating directories for 'cpplog-project' [ 1%] Performing download step (git clone) for 'cpplog-project' Cloning into 'cpplog-project'... Already on 'master' Your branch is up to date with 'origin/master'. [ 2%] Performing update step for 'cpplog-project' From https://github.com/doe300/cpplog * branch HEAD -> FETCH_HEAD Already up to date. [ 2%] No patch step for 'cpplog-project' [ 2%] Performing configure step for 'cpplog-project' -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpplog/src/cpplog-project-build [ 3%] Performing build step for 'cpplog-project' [ 12%] Building CXX object CMakeFiles/cpplog.dir/src/log.cpp.o [ 25%] Building CXX object CMakeFiles/cpplog.dir/src/logger.cpp.o [ 37%] Building CXX object CMakeFiles/cpplog.dir/src/log_impl.cpp.o [ 50%] Linking CXX shared library libcpplog.so [ 50%] Built target cpplog [ 62%] Building CXX object CMakeFiles/cpplog-static.dir/src/log.cpp.o [ 75%] Building CXX object CMakeFiles/cpplog-static.dir/src/logger.cpp.o [ 87%] Building CXX object CMakeFiles/cpplog-static.dir/src/log_impl.cpp.o [100%] Linking CXX static library libcpplog-static.a [100%] Built target cpplog-static [ 3%] Built target cpplog-project-build [ 4%] Building CXX object src/CMakeFiles/VC4CC.dir/BasicBlock.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 4%] Building CXX object src/CMakeFiles/VC4CC.dir/CompilationError.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 5%] Building CXX object src/CMakeFiles/VC4CC.dir/Compiler.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 5%] Building CXX object src/CMakeFiles/VC4CC.dir/Disassembler.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 6%] Building CXX object src/CMakeFiles/VC4CC.dir/Expression.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 6%] Building CXX object src/CMakeFiles/VC4CC.dir/GlobalValues.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 6%] Building CXX object src/CMakeFiles/VC4CC.dir/HalfType.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 7%] Building CXX object src/CMakeFiles/VC4CC.dir/InstructionWalker.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 7%] Building CXX object src/CMakeFiles/VC4CC.dir/Locals.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 8%] Building CXX object src/CMakeFiles/VC4CC.dir/Method.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 8%] Building CXX object src/CMakeFiles/VC4CC.dir/Module.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 9%] Building CXX object src/CMakeFiles/VC4CC.dir/ProcessUtil.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 9%] Building CXX object src/CMakeFiles/VC4CC.dir/Profiler.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 9%] Building CXX object src/CMakeFiles/VC4CC.dir/Register.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 10%] Building CXX object src/CMakeFiles/VC4CC.dir/signals.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 10%] Building CXX object src/CMakeFiles/VC4CC.dir/SIMDVector.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 11%] Building CXX object src/CMakeFiles/VC4CC.dir/ThreadPool.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 11%] Building CXX object src/CMakeFiles/VC4CC.dir/Types.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 11%] Building CXX object src/CMakeFiles/VC4CC.dir/Values.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 12%] Building CXX object src/CMakeFiles/VC4CC.dir/shared/BinaryHeader.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 12%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/AvailableExpressionAnalysis.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 13%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/ControlFlowGraph.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 13%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/ControlFlowLoop.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 14%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DataDependencyGraph.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 14%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DebugGraph.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 14%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DependencyGraph.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 15%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/DominatorTree.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 15%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/FlagsAnalysis.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 17%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/InterferenceGraph.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 17%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/LivenessAnalysis.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 18%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/MemoryAnalysis.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 18%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/PatternMatching.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 18%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/RegisterAnalysis.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 19%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/ValueRange.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 19%] Building CXX object src/CMakeFiles/VC4CC.dir/analysis/WorkItemAnalysis.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 20%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/ALUInstruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 20%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/BranchInstruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 21%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/CodeGenerator.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 21%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/GraphColoring.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 21%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/Instruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 22%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/KernelInfo.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 22%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/LoadInstruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 23%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/OpCodes.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 23%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/RegisterFixes.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 23%] Building CXX object src/CMakeFiles/VC4CC.dir/asm/SemaphoreInstruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 24%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Branching.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 24%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Helper.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 25%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Instruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 25%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/LoadImmediate.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 26%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/MemoryInstruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition /home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp: In member function ‘vc4c::DataType vc4c::intermediate::MemoryInstruction::getSourceElementType(bool) const’: /home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp:136:39: warning: ‘vc4c::DataType vc4c::DataType::toArrayType(unsigned int) const’ is deprecated [-Wdeprecated-declarations] 136 | return elementType.toArrayType(getNumEntries().getLiteralValue()->unsignedInt()); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /home/dietpi/opencl/VC4C/src/intermediate/../Locals.h:12, from /home/dietpi/opencl/VC4C/src/intermediate/IntermediateInstruction.h:10, from /home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp:7: /home/dietpi/opencl/VC4C/src/intermediate/../Types.h:176:33: note: declared here 176 | [[deprecated]] DataType toArrayType(unsigned int numElements) const; | ^~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp: In member function ‘vc4c::DataType vc4c::intermediate::MemoryInstruction::getDestinationElementType(bool) const’: /home/dietpi/opencl/VC4C/src/intermediate/MemoryInstruction.cpp:174:39: warning: ‘vc4c::DataType vc4c::DataType::toArrayType(unsigned int) const’ is deprecated [-Wdeprecated-declarations] 174 | return elementType.toArrayType(getNumEntries().getLiteralValue()->unsignedInt()); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../Types.h:176:33: note: declared here 176 | [[deprecated]] DataType toArrayType(unsigned int numElements) const; | ^~~~~~~~~~~ [ 26%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/MethodCall.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 26%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Operations.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 27%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/Synchronization.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 27%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/TypeConversions.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 28%] Building CXX object src/CMakeFiles/VC4CC.dir/intermediate/VectorHelper.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 28%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Comparisons.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 29%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Images.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 29%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Intrinsics.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 29%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/Operators.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 30%] Building CXX object src/CMakeFiles/VC4CC.dir/intrinsics/WorkItems.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 30%] Building CXX object src/CMakeFiles/VC4CC.dir/llvm/BitcodeReader.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp: In member function ‘void vc4c::llvm2qasm::BitcodeReader::extractKernelMetadata(vc4c::Module&, vc4c::Method&, const llvm::Function&)’: /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:125:13: warning: unused variable ‘metadata’ [-Wunused-variable] 125 | if(auto metadata = func.getMetadata("kernel_arg_access_qual")) | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:150:13: warning: unused variable ‘metadata’ [-Wunused-variable] 150 | if(auto metadata = func.getMetadata("kernel_arg_base_type")) | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp: In member function ‘void vc4c::llvm2qasm::BitcodeReader::parseInstruction(vc4c::Module&, vc4c::Method&, vc4c::llvm2qasm::LLVMInstructionList&, const llvm::Instruction&)’: /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:937:50: warning: conversion from ‘uint64_t’ {aka ‘long long unsigned int’} to ‘unsigned int’ may change value [-Wconversion] 937 | unsigned alignment = alloca->getAlignment(); | ~~~~~~~~~~~~~~~~~~~~^~ /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp: In member function ‘vc4c::Value vc4c::llvm2qasm::BitcodeReader::toConstant(vc4c::Module&, const llvm::Value*, vc4c::Method*, vc4c::llvm2qasm::LLVMInstructionList*)’: /home/dietpi/opencl/VC4C/src/llvm/BitcodeReader.cpp:1424:18: warning: unused variable ‘constant’ [-Wunused-variable] 1424 | else if(auto constant = llvm::dyn_cast<const llvm::ConstantAggregateZero>(val)) | ^~~~~~~~ [ 31%] Building CXX object src/CMakeFiles/VC4CC.dir/llvm/LLVMInstruction.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 31%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/AddressCalculation.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 32%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/Inliner.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 32%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/LiteralValues.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 32%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/LongOperations.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 34%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/MemoryAccess.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 34%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/MemoryMapChecks.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In function ‘vc4c::Optional<vc4c::Value> vc4c::normalization::getConstantElementValue(const vc4c::Value&)’: /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:99:17: warning: unused variable ‘reg’ [-Wunused-variable] 99 | if(auto reg = container->checkRegister()) | ^~~ /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In function ‘vc4c::Optional<vc4c::DataType> convertSmallArrayToRegister(const vc4c::Local*)’: /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:131:17: warning: unused variable ‘pointerType’ [-Wunused-variable] 131 | if(auto pointerType = baseType.getPointerType()) | ^~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In lambda function: /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:158:21: warning: unused variable ‘memInst’ [-Wunused-variable] 158 | if(auto memInst = dynamic_cast<const MemoryInstruction*>(writer)) | ^~~~~~~ /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp: In lambda function: /home/dietpi/opencl/VC4C/src/normalization/MemoryMapChecks.cpp:165:21: warning: unused variable ‘memInst’ [-Wunused-variable] 165 | if(auto memInst = dynamic_cast<const MemoryInstruction*>(reader)) | ^~~~~~~ [ 35%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/MemoryMappings.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 35%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/Normalizer.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 36%] Building CXX object src/CMakeFiles/VC4CC.dir/normalization/Rewrite.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 36%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Combiner.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 36%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/ControlFlow.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 37%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Eliminator.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 37%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Flags.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 38%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Memory.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 38%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Optimizer.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 38%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Peephole.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 39%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Reordering.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 39%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/InstructionScheduler.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 40%] Building CXX object src/CMakeFiles/VC4CC.dir/optimization/Vector.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 40%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/CacheEntry.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 41%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/RegisterLoweredMemory.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 41%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/SFU.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 41%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/TMU.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 42%] Building CXX object src/CMakeFiles/VC4CC.dir/periphery/VPM.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition /home/dietpi/opencl/VC4C/src/periphery/VPM.cpp: In static member function ‘static vc4c::DataType vc4c::periphery::VPM::getVPMStorageType(vc4c::DataType)’: /home/dietpi/opencl/VC4C/src/periphery/VPM.cpp:1450:74: warning: ‘vc4c::DataType vc4c::DataType::toArrayType(unsigned int) const’ is deprecated [-Wdeprecated-declarations] 1450 | inVPMType = getVPMStorageType(arrayType->elementType).toArrayType(arrayType->size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ In file included from /home/dietpi/opencl/VC4C/src/periphery/../intermediate/../Locals.h:12, from /home/dietpi/opencl/VC4C/src/periphery/../intermediate/IntermediateInstruction.h:10, from /home/dietpi/opencl/VC4C/src/periphery/../InstructionWalker.h:10, from /home/dietpi/opencl/VC4C/src/periphery/VPM.h:11, from /home/dietpi/opencl/VC4C/src/periphery/VPM.cpp:7: /home/dietpi/opencl/VC4C/src/periphery/../intermediate/../Types.h:176:33: note: declared here 176 | [[deprecated]] DataType toArrayType(unsigned int numElements) const; | ^~~~~~~~~~~ [ 42%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/ClangLibrary.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 43%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/FrontendCompiler.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 43%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/LLVMLibrary.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 44%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/Precompiler.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 44%] Building CXX object src/CMakeFiles/VC4CC.dir/precompilation/TemporaryFile.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 44%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVBuiltins.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 45%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVHelper.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 45%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVLexer.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 46%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVOperation.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 46%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVParserBase.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 47%] Building CXX object src/CMakeFiles/VC4CC.dir/spirv/SPIRVToolsParser.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 47%] Building CXX object src/CMakeFiles/VC4CC.dir/tools/Emulator.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 47%] Building CXX object src/CMakeFiles/VC4CC.dir/tools/options.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 48%] Linking CXX shared library libVC4CC.so [ 48%] Built target VC4CC [ 48%] Built target GetGitCommit [ 48%] Building CXX object src/CMakeFiles/VC4C.dir/main.cpp.o [ 48%] Linking CXX executable vc4c VC4CL standard library precompiled into /home/dietpi/opencl/VC4C/../VC4CLStdLib/include/ [ 48%] Built target VC4C [ 48%] Building CXX object tools/CMakeFiles/qpu_emulator.dir/emulator.cpp.o [ 50%] Linking CXX executable qpu_emulator [ 50%] Built target qpu_emulator [ 50%] Generating test_files/unaligned_memory_access.cl.o [ 51%] Generating test_files/OpenCV/transpose.cl.o [ 51%] Generating test_files/fibonacci.cl.o [ 51%] Generating test_files/hello_world.cl.o [ 52%] Generating test_files/hello_world_constant.cl.o [ 52%] Generating test_files/hello_world_vector.cl.o [ 53%] Generating test_files/histogram.cl.o [ 53%] Generating test_files/md5.cl.o [ 53%] Generating test_files/SHA-256.cl.o [ 54%] Generating test_files/test.cl.o [ 54%] Generating test_files/test_instructions.cl.o [ 55%] Generating test_files/test_prime.cl.o [ 55%] Generating test_files/test_async_copy.cl.o [ 56%] Generating test_files/test_atomic.cl.o [ 56%] Generating test_files/test_barrier.cl.o [ 56%] Generating test_files/test_branches.cl.o [ 57%] Generating test_files/test_conditional_address.cl.o [ 57%] Generating test_files/test_constant_load.cl.o [ 58%] Generating test_files/test_cross_group_access.cl.o [ 58%] Generating test_files/test_cts_regressions.cl.o [ 59%] Generating test_files/test_expect_assume.cl.o [ 59%] Generating test_files/test_hashes.cl.o [ 59%] Generating test_files/local_private_storage.cl.o [ 60%] Generating test_files/test_other.cl.o [ 60%] Generating test_files/test_sfu.cl.o [ 61%] Generating test_files/test_shuffle.cl.o [ 61%] Generating test_files/test_storage.cl.o [ 62%] Generating test_files/test_struct.cl.o [ 62%] Generating test_files/test_vector.cl.o [ 63%] Generating test_files/test_vectorization.cl.o [ 63%] Generating test_files/test_vpm_read.cl.o [ 64%] Generating test_files/test_vpm_write.cl.o [ 64%] Generating test_files/test_work_item.cl.o [ 64%] Generating test_files/bugs/30_local_memory.cl.o [ 65%] Generating test_files/bugs/33_floating_point_folding.cl.o [ 65%] Generating test_files/bugs/vc4cl_27_wrong_result.cl.o [ 67%] Generating test_files/bugs/54_invalid_results.cl.o [ 67%] Generating test_files/boost-compute/initial_reduce.cl.o [ 68%] Generating test_files/boost-compute/adjacent_find.cl.o [ 68%] Generating test_files/boost-compute/test_count.cl.o [ 68%] Generating test_files/boost-compute/test_extrema.cl.o [ 69%] Generating test_files/boost-compute/test_functional_popcount.cl.o [ 69%] Generating test_files/boost-compute/test_reduce.cl.o [ 70%] Generating test_files/boost-compute/test_insertion_sort.cl.o [ 70%] Generating test_files/boost-compute/test_merge.cl.o [ 71%] Generating test_files/boost-compute/test_transform2.cl.o [ 71%] Generating test_files/boost-compute/user_defined_types.cl.o [ 71%] Generating test_files/OpenCL-CTS/pointer_cast.cl.o [ 72%] Generating test_files/OpenCL-CTS/integer_add_sat.cl.o [ 72%] Generating test_files/OpenCL-CTS/sub_sat.cl.o [ 73%] Generating test_files/OpenCL-CTS/uchar_compare.cl.o [ 73%] Generating test_files/OpenCL-CTS/async_copy_global_to_local.cl.o [ 74%] Generating test_files/OpenCL-CTS/min_max_constant_args.cl.o [ 74%] Generating test_files/OpenCL-CTS/sub_buffers_read_write.cl.o [ 74%] Generating test_files/OpenCL-CTS/local_kernel_scope.cl.o [ 75%] Generating test_files/OpenCL-CTS/barrier.cl.o [ 75%] Generating test_files/OpenCL-CTS/clamp.cl.o [ 76%] Generating test_files/OpenCL-CTS/cross_product.cl.o [ 76%] Generating test_files/OpenCL-CTS/constant.cl.o [ 77%] Generating test_files/OpenCL-CTS/test_select.cl.o [ 77%] Generating test_files/BabelStream/OCLStream.cl.o [ 77%] Generating test_files/clNN/SpatialUpSamplingNearest.cl.o [ 78%] Generating test_files/deepCL/copy.cl.o [ 78%] Generating test_files/deepCL/inv.cl.o [ 79%] Generating test_files/deepCL/memset.cl.o [ 79%] Generating test_files/HandsOnOpenCL/matmul.cl.o [ 79%] Generating test_files/HandsOnOpenCL/pi_ocl.cl.o [ 80%] Generating test_files/NVIDIA/VectorAdd.cl.o [ 80%] Generating test_files/OpenCLIPP/Histogram.cl.o [ 81%] Generating test_files/pocl/test_structs_as_args.cl.o [ 81%] Generating test_files/rodinia/nearestNeighbor_kernel.cl.o [ 82%] Generating test_files/OpenCV/flip.cl.o [ 82%] Generating test_files/OpenCV/meanstddev.cl.o [ 82%] Generating test_files/OpenCV/normalize.cl.o [ 84%] Generating test_files.h [ 84%] Generating test_files/test_files.cpp [ 84%] Building CXX object test/CMakeFiles/TestData.dir/ArithmeticTests.cpp.o In file included from /home/dietpi/opencl/VC4C/test/ArithmeticTests.cpp:6: /home/dietpi/opencl/VC4C/test/TestEntries.h: In instantiation of ‘std::vector<_RealType> test_data::transform(const std::vector<T>&, const Func&) [with R = float; T = float; Func = registerTypeTests<float, int>(const std::string&)::<lambda(float)>]’: /home/dietpi/opencl/VC4C/test/ArithmeticTests.cpp:430:25: required from ‘void registerTypeTests(const std::string&) [with T = float; IntType = int; std::string = std::__cxx11::basic_string<char>]’ /home/dietpi/opencl/VC4C/test/ArithmeticTests.cpp:609:38: required from here /home/dietpi/opencl/VC4C/test/TestEntries.h:107:29: warning: conversion from ‘int’ to ‘__gnu_cxx::__alloc_traits<std::allocator<float>, float>::value_type’ {aka ‘float’} may change value [-Wconversion] 107 | result[i] = func(arg[i]); | ~~~~^~~~~~~~ [ 85%] Building CXX object test/CMakeFiles/TestData.dir/ConversionTests.cpp.o [ 85%] Building CXX object test/CMakeFiles/TestData.dir/FloatTests.cpp.o [ 85%] Building CXX object test/CMakeFiles/TestData.dir/IntegerTests.cpp.o [ 86%] Building CXX object test/CMakeFiles/TestData.dir/MathTests.cpp.o In file included from /home/dietpi/opencl/VC4C/test/MathTests.cpp:6: /home/dietpi/opencl/VC4C/test/TestEntries.h: In instantiation of ‘std::vector<_RealType> test_data::transform(const std::vector<T>&, const std::vector<U>&, const Func&) [with R = float; T = float; U = int; Func = std::function<float(float, float)>]’: /home/dietpi/opencl/VC4C/test/MathTests.cpp:376:67: required from here /home/dietpi/opencl/VC4C/test/TestEntries.h:119:29: warning: conversion from ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type’ {aka ‘int’} to ‘float’ may change value [-Wconversion] 119 | result[i] = func(arg0[i], arg1[i]); | ~~~~^~~~~~~~~~~~~~~~~~ [ 86%] Building CXX object test/CMakeFiles/TestData.dir/MemoryTests.cpp.o [ 87%] Building CXX object test/CMakeFiles/TestData.dir/RelationalTests.cpp.o [ 87%] Building CXX object test/CMakeFiles/TestData.dir/VectorTests.cpp.o [ 88%] Building CXX object test/CMakeFiles/TestData.dir/TestData.cpp.o [ 88%] Building CXX object test/CMakeFiles/TestData.dir/test_files/test_files.cpp.o [ 88%] Linking CXX static library libvc4c_testdata.a [ 88%] Built target TestData [ 89%] Creating directories for 'cpptest-lite-project' [ 89%] Performing download step (git clone) for 'cpptest-lite-project' Cloning into 'cpptest-lite-project'... Already on 'master' Your branch is up to date with 'origin/master'. [ 90%] Performing update step for 'cpptest-lite-project' From https://github.com/doe300/cpptest-lite * branch HEAD -> FETCH_HEAD Already up to date. [ 90%] No patch step for 'cpptest-lite-project' [ 90%] Performing configure step for 'cpptest-lite-project' -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project-build [ 91%] Performing build step for 'cpptest-lite-project' [ 8%] Building CXX object CMakeFiles/cpptest-lite.dir/src/BDDSuite.cpp.o [ 16%] Building CXX object CMakeFiles/cpptest-lite.dir/src/CollectorOutput.cpp.o In file included from /usr/include/c++/12/vector:70, from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/CollectorOutput.h:5, from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/src/CollectorOutput.cpp:10: /usr/include/c++/12/bits/vector.tcc: In member function ‘void std::vector<_Tp, _Alloc>::_M_realloc_insert(iterator, _Args&& ...) [with _Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const unsigned int&}; _Tp = Test::CollectorOutput::SuiteInfo; _Alloc = std::allocator<Test::CollectorOutput::SuiteInfo>]’: /usr/include/c++/12/bits/vector.tcc:439:7: note: parameter passing for argument of type ‘std::vector<Test::CollectorOutput::SuiteInfo>::iterator’ changed in GCC 7.1 439 | vector<_Tp, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~ In member function ‘void std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const unsigned int&}; _Tp = Test::CollectorOutput::SuiteInfo; _Alloc = std::allocator<Test::CollectorOutput::SuiteInfo>]’, inlined from ‘virtual void Test::CollectorOutput::initializeSuite(const std::string&, unsigned int)’ at /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/src/CollectorOutput.cpp:16:21: /usr/include/c++/12/bits/vector.tcc:123:28: note: parameter passing for argument of type ‘__gnu_cxx::__normal_iterator<Test::CollectorOutput::SuiteInfo*, std::vector<Test::CollectorOutput::SuiteInfo> >’ changed in GCC 7.1 123 | _M_realloc_insert(end(), std::forward<_Args>(__args)...); | ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object CMakeFiles/cpptest-lite.dir/src/CompilerOutput.cpp.o [ 33%] Building CXX object CMakeFiles/cpptest-lite.dir/src/ConsoleOutput.cpp.o [ 41%] Building CXX object CMakeFiles/cpptest-lite.dir/src/HTMLOutput.cpp.o [ 50%] Building CXX object CMakeFiles/cpptest-lite.dir/src/ParallelSuite.cpp.o [ 58%] Building CXX object CMakeFiles/cpptest-lite.dir/src/SynchronizedOutput.cpp.o [ 66%] Building CXX object CMakeFiles/cpptest-lite.dir/src/TestSuite.cpp.o [ 75%] Building CXX object CMakeFiles/cpptest-lite.dir/src/TestMain.cpp.o [ 83%] Building CXX object CMakeFiles/cpptest-lite.dir/src/TextOutput.cpp.o [ 91%] Building CXX object CMakeFiles/cpptest-lite.dir/src/XMLOutput.cpp.o [100%] Linking CXX shared library libcpptest-lite.so [100%] Built target cpptest-lite [ 91%] Built target cpptest-lite-project-build [ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/RegressionTest.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/test.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestAnalyses.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition /home/dietpi/opencl/VC4C/test/TestAnalyses.cpp: In member function ‘void TestAnalyses::testActiveWorkItems()’: /home/dietpi/opencl/VC4C/test/TestAnalyses.cpp:1514:14: warning: variable ‘numNodes’ set but not used [-Wunused-but-set-variable] 1514 | auto numNodes = cfg.getNodes().size(); | ^~~~~~~~ [ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestCustomContainers.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition In file included from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/asserts.h:3, from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/cpptest.h:3, from /home/dietpi/opencl/VC4C/test/TestCustomContainers.h:10, from /home/dietpi/opencl/VC4C/test/TestCustomContainers.cpp:7: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/comparisons.h: In instantiation of ‘bool Test::Comparisons::isSame(const T1&, const T2&) [with T1 = int; T2 = unsigned int]’: /home/dietpi/opencl/VC4C/test/TestCustomContainers.cpp:51:5: required from here /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/comparisons.h:78:37: warning: comparison of integer expressions of different signedness: ‘const int’ and ‘const unsigned int’ [-Wsign-compare] 78 | return val1 == val2; | ~~~~~^~~~~~~ [ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestEmulator.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestExpressions.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestFrontends.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 95%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestGraph.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 95%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestInstructions.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition /home/dietpi/opencl/VC4C/test/TestInstructions.cpp: In member function ‘void TestInstructions::testOpCodeFlags()’: /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:827:10: error: expected unqualified-id before numeric constant 827 | auto INT_MAX = Value(Literal(0x7FFFFFFFu), TYPE_INT32); | ^~~~~~~ In file included from /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/cpptest.h:3, from /home/dietpi/opencl/VC4C/test/TestInstructions.h:10, from /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:7: /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:837:36: error: no match for call to ‘(const vc4c::OpCode) (int, int)’ 837 | TEST_ASSERT(checkFlagSet(OP_ADD(INT_MAX, INT_MAX).second, FlagsMask::SIGNED_OVERFLOW)) | ~~~~~~^~~~~~~~~~~~~~~~~~ /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/asserts.h:21:22: note: in definition of macro ‘TEST_ASSERT’ 21 | if(false == (condition)) { \ | ^~~~~~~~~ In file included from /home/dietpi/opencl/VC4C/src/intermediate/IntermediateInstruction.h:13, from /home/dietpi/opencl/VC4C/src/InstructionWalker.h:10, from /home/dietpi/opencl/VC4C/src/BasicBlock.h:13, from /home/dietpi/opencl/VC4C/src/Method.h:10, from /home/dietpi/opencl/VC4C/src/Module.h:11, from /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:16: /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(const vc4c::Value&, const vc4c::Optional<vc4c::Value>&) const’ 860 | PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:52: note: no known conversion for argument 1 from ‘int’ to ‘const vc4c::Value&’ 860 | PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const; | ~~~~~~~~~~~~~^~~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(vc4c::Literal, vc4c::Literal, vc4c::DataType) const’ 861 | PrecalculatedValue operator()(Literal firstOperand, Literal secondOperand, DataType resultType) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note: candidate expects 3 arguments, 2 provided /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:29: note: candidate: ‘vc4c::PrecalculatedVector vc4c::OpCode::operator()(const vc4c::SIMDVector&, const vc4c::SIMDVector&) const’ 862 | PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:58: note: no known conversion for argument 1 from ‘int’ to ‘const vc4c::SIMDVector&’ 862 | PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const; | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:863:30: note: candidate: ‘vc4c::analysis::ValueRange vc4c::OpCode::operator()(const vc4c::analysis::ValueRange&, const vc4c::analysis::ValueRange&) const’ 863 | analysis::ValueRange operator()( | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:864:41: note: no known conversion for argument 1 from ‘int’ to ‘const vc4c::analysis::ValueRange&’ 864 | const analysis::ValueRange& firstRange, const analysis::ValueRange& secondRange) const; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:27: note: candidate: ‘vc4c::OperationBitMasks vc4c::OpCode::operator()(vc4c::BitMask, vc4c::BitMask) const’ 865 | OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:46: note: no known conversion for argument 1 from ‘int’ to ‘vc4c::BitMask’ 865 | OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const; | ~~~~~~~~^~~~~~~~~ /home/dietpi/opencl/VC4C/test/TestInstructions.cpp:980:36: error: no match for call to ‘(const vc4c::OpCode) (int, const vc4c::Value&)’ 980 | TEST_ASSERT(checkFlagSet(OP_SUB(INT_MAX, INT_MINUS_ONE).second, FlagsMask::SIGNED_OVERFLOW)) | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project/include/asserts.h:21:22: note: in definition of macro ‘TEST_ASSERT’ 21 | if(false == (condition)) { \ | ^~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(const vc4c::Value&, const vc4c::Optional<vc4c::Value>&) const’ 860 | PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:860:52: note: no known conversion for argument 1 from ‘int’ to ‘const vc4c::Value&’ 860 | PrecalculatedValue operator()(const Value& firstOperand, const Optional<Value>& secondOperand) const; | ~~~~~~~~~~~~~^~~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note: candidate: ‘vc4c::PrecalculatedValue vc4c::OpCode::operator()(vc4c::Literal, vc4c::Literal, vc4c::DataType) const’ 861 | PrecalculatedValue operator()(Literal firstOperand, Literal secondOperand, DataType resultType) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:861:28: note: candidate expects 3 arguments, 2 provided /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:29: note: candidate: ‘vc4c::PrecalculatedVector vc4c::OpCode::operator()(const vc4c::SIMDVector&, const vc4c::SIMDVector&) const’ 862 | PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:862:58: note: no known conversion for argument 1 from ‘int’ to ‘const vc4c::SIMDVector&’ 862 | PrecalculatedVector operator()(const SIMDVector& firstOperand, const SIMDVector& secondOperand) const; | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:863:30: note: candidate: ‘vc4c::analysis::ValueRange vc4c::OpCode::operator()(const vc4c::analysis::ValueRange&, const vc4c::analysis::ValueRange&) const’ 863 | analysis::ValueRange operator()( | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:864:41: note: no known conversion for argument 1 from ‘int’ to ‘const vc4c::analysis::ValueRange&’ 864 | const analysis::ValueRange& firstRange, const analysis::ValueRange& secondRange) const; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:27: note: candidate: ‘vc4c::OperationBitMasks vc4c::OpCode::operator()(vc4c::BitMask, vc4c::BitMask) const’ 865 | OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const; | ^~~~~~~~ /home/dietpi/opencl/VC4C/src/intermediate/../asm/OpCodes.h:865:46: note: no known conversion for argument 1 from ‘int’ to ‘vc4c::BitMask’ 865 | OperationBitMasks operator()(BitMask firstMask, BitMask secondMask) const; | ~~~~~~~~^~~~~~~~~ make[2]: *** [test/CMakeFiles/TestVC4C.dir/build.make:188: test/CMakeFiles/TestVC4C.dir/TestInstructions.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:525: test/CMakeFiles/TestVC4C.dir/all] Error 2 make: *** [Makefile:166: all] Error 2
$ git diff
diff --git a/test/TestInstructions.cpp b/test/TestInstructions.cpp index 75501e8..1329d0a 100644 --- a/test/TestInstructions.cpp +++ b/test/TestInstructions.cpp @@ -824,7 +824,7 @@ void TestInstructions::testOpCodeFlags() return false; }; - auto INT_MAX = Value(Literal(0x7FFFFFFFu), TYPE_INT32); + auto INT_MAX2 = Value(Literal(0x7FFFFFFFu), TYPE_INT32); auto FLOAT_MINUS_ONE = Value(Literal(-1.0f), TYPE_FLOAT); TEST_ASSERT(checkFlagClear(OP_ADD(INT_ONE, INT_ONE).second, FlagsMask::ZERO)) @@ -834,7 +834,7 @@ void TestInstructions::testOpCodeFlags() TEST_ASSERT(checkFlagSet(OP_ADD(INT_ONE, INT_MINUS_ONE).second, FlagsMask::ZERO)) TEST_ASSERT(checkFlagSet(OP_ADD(INT_MINUS_ONE, INT_MINUS_ONE).second, FlagsMask::NEGATIVE)) TEST_ASSERT(checkFlagSet(OP_ADD(INT_MINUS_ONE, INT_MINUS_ONE).second, FlagsMask::CARRY)) - TEST_ASSERT(checkFlagSet(OP_ADD(INT_MAX, INT_MAX).second, FlagsMask::SIGNED_OVERFLOW)) + TEST_ASSERT(checkFlagSet(OP_ADD(INT_MAX2, INT_MAX2).second, FlagsMask::SIGNED_OVERFLOW)) TEST_ASSERT(checkFlagClear(OP_AND(INT_ONE, INT_ONE).second, FlagsMask::ZERO)) TEST_ASSERT(checkFlagClear(OP_AND(INT_ONE, INT_ONE).second, FlagsMask::NEGATIVE)) @@ -977,7 +977,7 @@ void TestInstructions::testOpCodeFlags() TEST_ASSERT(checkFlagSet(OP_SUB(INT_ONE, INT_ONE).second, FlagsMask::ZERO)) TEST_ASSERT(checkFlagSet(OP_SUB(INT_MINUS_ONE, INT_ONE).second, FlagsMask::NEGATIVE)) TEST_ASSERT(checkFlagClear(OP_SUB(INT_MINUS_ONE, INT_ONE).second, FlagsMask::CARRY)) - TEST_ASSERT(checkFlagSet(OP_SUB(INT_MAX, INT_MINUS_ONE).second, FlagsMask::SIGNED_OVERFLOW)) + TEST_ASSERT(checkFlagSet(OP_SUB(INT_MAX2, INT_MINUS_ONE).second, FlagsMask::SIGNED_OVERFLOW)) TEST_ASSERT(checkFlagClear(OP_XOR(INT_ONE, INT_MINUS_ONE).second, FlagsMask::ZERO)) TEST_ASSERT(checkFlagClear(OP_XOR(INT_ONE, INT_ONE).second, FlagsMask::NEGATIVE))
$ make
[ 1%] Performing update step for 'cpplog-project' From https://github.com/doe300/cpplog * branch HEAD -> FETCH_HEAD Already up to date. [ 1%] No patch step for 'cpplog-project' [ 1%] Performing configure step for 'cpplog-project' -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpplog/src/cpplog-project-build [ 2%] Performing build step for 'cpplog-project' [ 50%] Built target cpplog [100%] Built target cpplog-static [ 3%] Built target cpplog-project-build [ 48%] Built target VC4CC [ 48%] Built target GetGitCommit [ 48%] Building CXX object src/CMakeFiles/VC4C.dir/main.cpp.o [ 48%] Linking CXX executable vc4c [ 48%] Built target VC4C [ 50%] Built target qpu_emulator [ 88%] Built target TestData [ 89%] Performing update step for 'cpptest-lite-project' From https://github.com/doe300/cpptest-lite * branch HEAD -> FETCH_HEAD Already up to date. [ 89%] No patch step for 'cpptest-lite-project' [ 89%] Performing configure step for 'cpptest-lite-project' -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project-build [ 90%] Performing build step for 'cpptest-lite-project' [100%] Built target cpptest-lite [ 91%] Built target cpptest-lite-project-build [ 91%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestInstructions.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestIntrinsics.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestMathFunctions.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 92%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestOperators.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestOptimizations.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 93%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestOptimizationSteps.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestPatternMatching.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 94%] Building CXX object test/CMakeFiles/TestVC4C.dir/TestRegisterFixes.cpp.o <command-line>: warning: "_GNU_SOURCE" redefined <command-line>: note: this is the location of the previous definition [ 95%] Linking CXX executable TestVC4C /usr/bin/ld: warning: transpose.cl.o: missing .note.GNU-stack section implies executable stack /usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker [100%] Built target TestVC4C
$ sudo make install && sudo ldconfig
[ 1%] Performing update step for 'cpplog-project' From https://github.com/doe300/cpplog * branch HEAD -> FETCH_HEAD Already up to date. [ 1%] No patch step for 'cpplog-project' [ 1%] Performing configure step for 'cpplog-project' -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpplog/src/cpplog-project-build [ 2%] Performing build step for 'cpplog-project' [ 50%] Built target cpplog [100%] Built target cpplog-static [ 3%] Built target cpplog-project-build [ 48%] Built target VC4CC [ 48%] Built target GetGitCommit [ 48%] Building CXX object src/CMakeFiles/VC4C.dir/main.cpp.o [ 48%] Linking CXX executable vc4c [ 48%] Built target VC4C [ 50%] Built target qpu_emulator [ 88%] Built target TestData [ 89%] Performing update step for 'cpptest-lite-project' From https://github.com/doe300/cpptest-lite * branch HEAD -> FETCH_HEAD Already up to date. [ 89%] No patch step for 'cpptest-lite-project' [ 89%] Performing configure step for 'cpptest-lite-project' -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4C/build/cpptest-lite/src/cpptest-lite-project-build [ 90%] Performing build step for 'cpptest-lite-project' [100%] Built target cpptest-lite [ 91%] Built target cpptest-lite-project-build [100%] Built target TestVC4C Install the project... -- Install configuration: "Debug" -- Installing: /usr/local/lib/cmake/mpark_variant/mpark_variant-targets.cmake -- Installing: /usr/local/include/mpark -- Installing: /usr/local/include/mpark/variant.hpp -- Installing: /usr/local/include/mpark/lib.hpp -- Installing: /usr/local/include/mpark/in_place.hpp -- Installing: /usr/local/include/mpark/config.hpp -- Installing: /usr/local/lib/cmake/mpark_variant/mpark_variant-config.cmake -- Installing: /usr/local/lib/cmake/mpark_variant/mpark_variant-config-version.cmake -- Installing: /usr/local/lib/libVC4CC.so.0.4.9999 -- Installing: /usr/local/lib/libVC4CC.so.1.2 -- Set runtime path of "/usr/local/lib/libVC4CC.so.0.4.9999" to "/usr/local/lib" -- Installing: /usr/local/lib/libVC4CC.so -- Installing: /usr/local/bin/vc4c -- Set runtime path of "/usr/local/bin/vc4c" to "/usr/local/lib" -- Installing: /usr/local/share/vc4cc/VC4CC-targets.cmake -- Installing: /usr/local/share/vc4cc/VC4CC-targets-debug.cmake -- Installing: /usr/local/include/vc4cc -- Installing: /usr/local/include/vc4cc/CompilationError.h -- Installing: /usr/local/include/vc4cc/VC4C.h -- Installing: /usr/local/include/vc4cc/config.h -- Installing: /usr/local/include/vc4cc/Compiler.h -- Installing: /usr/local/include/vc4cc/Precompiler.h -- Installing: /usr/local/include/vc4cc/tools.h -- Installing: /usr/local/lib/libvc4c_testdata.a -- Installing: /usr/local/share/vc4cc/TestData-target.cmake -- Installing: /usr/local/share/vc4cc/TestData-target-debug.cmake -- Installing: /usr/local/include/vc4cc/TestData.h
参考: VC4C build error (make compile error) · Issue #166 · doe300/VC4C
VC4CL のビルド & インストール
$ cd ../../VC4CL $ mkdir build && cd build $ cmake -DBUILD_ICD=ON ..
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Looking for CL_VERSION_3_0 -- Looking for CL_VERSION_3_0 - found -- Found OpenCL: /usr/lib/arm-linux-gnueabihf/libOpenCL.so (found version "3.0") -- Found headers for OpenCL up to version 3.0 located in /usr/include -- VC4C library found: /home/dietpi/opencl/VC4C/build/src/libVC4CC.so -- VC4C compiler header found at: /home/dietpi/opencl/VC4C/include/VC4C.h -- VC4C test data library found: /home/dietpi/opencl/VC4C/build/test/libvc4c_testdata.a -- VC4C test data header found: /home/dietpi/opencl/VC4C/build/test/TestData.h -- Building with ICD support -- Checking for one of the modules 'ocl-icd>=1.3' -- Found Khronos ICD Loader in version 2.3.1 in /usr/lib/arm-linux-gnueabihf -- Looking for clCreateProgramWithIL -- Looking for clCreateProgramWithIL - found -- Looking for wsyncup in /usr/lib/arm-linux-gnueabihf/libcurses.so -- Looking for wsyncup in /usr/lib/arm-linux-gnueabihf/libcurses.so - found -- Looking for cbreak in /usr/lib/arm-linux-gnueabihf/libncurses.so -- Looking for cbreak in /usr/lib/arm-linux-gnueabihf/libncurses.so - found -- Looking for nodelay in /usr/lib/arm-linux-gnueabihf/libncurses.so -- Looking for nodelay in /usr/lib/arm-linux-gnueabihf/libncurses.so - found -- Found Curses: /usr/lib/arm-linux-gnueabihf/libncurses.so -- vcsm library not found -- found clang-format: /usr/bin/clang-format -- Configuring done -- Generating done -- Build files have been written to: /home/dietpi/opencl/VC4CL/build
$ make
[ 0%] Built target GetGitCommit [ 2%] Generating VC4CL.icd [ 2%] Built target generate_icd [ 5%] Building CXX object src/CMakeFiles/VC4CL.dir/barriers.cpp.o [ 8%] Building CXX object src/CMakeFiles/VC4CL.dir/Buffer.cpp.o [ 11%] Building CXX object src/CMakeFiles/VC4CL.dir/CommandQueue.cpp.o [ 14%] Building CXX object src/CMakeFiles/VC4CL.dir/common.cpp.o [ 17%] Building CXX object src/CMakeFiles/VC4CL.dir/Context.cpp.o [ 20%] Building CXX object src/CMakeFiles/VC4CL.dir/Device.cpp.o [ 22%] Building CXX object src/CMakeFiles/VC4CL.dir/Event.cpp.o [ 25%] Building CXX object src/CMakeFiles/VC4CL.dir/executor.cpp.o [ 28%] Building CXX object src/CMakeFiles/VC4CL.dir/extensions.cpp.o [ 31%] Building CXX object src/CMakeFiles/VC4CL.dir/icd_loader.cpp.o [ 34%] Building CXX object src/CMakeFiles/VC4CL.dir/Image.cpp.o [ 37%] Building CXX object src/CMakeFiles/VC4CL.dir/Kernel.cpp.o [ 40%] Building CXX object src/CMakeFiles/VC4CL.dir/Memory.cpp.o [ 42%] Building CXX object src/CMakeFiles/VC4CL.dir/ObjectTracker.cpp.o [ 45%] Building CXX object src/CMakeFiles/VC4CL.dir/PerformanceCounter.cpp.o [ 48%] Building CXX object src/CMakeFiles/VC4CL.dir/Platform.cpp.o [ 51%] Building CXX object src/CMakeFiles/VC4CL.dir/Program.cpp.o /home/dietpi/opencl/VC4CL/src/Program.cpp: In function ‘cl_int extractLog(std::string&, std::wstringstream&)’: /home/dietpi/opencl/VC4CL/src/Program.cpp:69:46: warning: argument 1 is null but the corresponding size argument 3 value is 4294967295 [-Wnonnull] 69 | std::size_t numCharacters = std::wcstombs(nullptr, logStream.str().data(), SIZE_MAX); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/12/cstdlib:75, from /usr/include/c++/12/ext/string_conversions.h:41, from /usr/include/c++/12/bits/basic_string.h:3960, from /usr/include/c++/12/string:53, from /home/dietpi/opencl/VC4CL/src/vc4cl_config.h:17, from /home/dietpi/opencl/VC4CL/src/icd_loader.h:15, from /home/dietpi/opencl/VC4CL/src/types.h:10, from /home/dietpi/opencl/VC4CL/src/ObjectTracker.h:10, from /home/dietpi/opencl/VC4CL/src/Object.h:10, from /home/dietpi/opencl/VC4CL/src/Device.h:10, from /home/dietpi/opencl/VC4CL/src/Context.h:9, from /home/dietpi/opencl/VC4CL/src/Program.h:11, from /home/dietpi/opencl/VC4CL/src/Program.cpp:7: /usr/include/stdlib.h:958:15: note: in a call to function ‘size_t wcstombs(char*, const wchar_t*, size_t)’ declared with attribute ‘access (read_only, 2)’ 958 | extern size_t wcstombs (char *__restrict __s, | ^~~~~~~~ /home/dietpi/opencl/VC4CL/src/Program.cpp:69:46: warning: argument 1 is null but the corresponding size argument 3 value is 4294967295 [-Wnonnull] 69 | std::size_t numCharacters = std::wcstombs(nullptr, logStream.str().data(), SIZE_MAX); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/stdlib.h:958:15: note: in a call to function ‘size_t wcstombs(char*, const wchar_t*, size_t)’ declared with attribute ‘access (read_only, 2)’ 958 | extern size_t wcstombs (char *__restrict __s, | ^~~~~~~~ [ 54%] Building CXX object src/CMakeFiles/VC4CL.dir/queue_handler.cpp.o [ 57%] Building CXX object src/CMakeFiles/VC4CL.dir/TextureFormat.cpp.o [ 60%] Building CXX object src/CMakeFiles/VC4CL.dir/unsupported.cpp.o [ 62%] Building CXX object src/CMakeFiles/VC4CL.dir/shared/BinaryHeader.cpp.o [ 65%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/emulator.cpp.o [ 68%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/hal.cpp.o [ 71%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/Mailbox.cpp.o [ 74%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/userland.cpp.o [ 77%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/V3D.cpp.o [ 80%] Building CXX object src/CMakeFiles/VC4CL.dir/hal/VCHI.cpp.o [ 82%] Linking CXX shared library libVC4CL.so [ 82%] Built target VC4CL [ 85%] Building CXX object tools/CMakeFiles/v3d_info.dir/V3DInfo.cpp.o [ 88%] Linking CXX executable v3d_info [ 88%] Built target v3d_info [ 91%] Building CXX object tools/CMakeFiles/v3d_profile.dir/V3DProfile.cpp.o /home/dietpi/opencl/VC4CL/tools/V3DProfile.cpp: In function ‘int main(int, char**)’: /home/dietpi/opencl/VC4CL/tools/V3DProfile.cpp:239:45: warning: conversion from ‘unsigned int’ to ‘uint8_t’ {aka ‘unsigned char’} may change value [-Wconversion] 239 | newCounters[i] = v3d.getCounter(i); | ^ [ 94%] Linking CXX executable v3d_profile [ 94%] Built target v3d_profile [ 97%] Building CXX object tools/CMakeFiles/vc4cl_dump_analyzer.dir/DumpAnalyzer.cpp.o [100%] Linking CXX executable vc4cl_dump_analyzer [100%] Built target vc4cl_dump_analyzer
$ sudo make install
[ 0%] Built target GetGitCommit [ 2%] Built target generate_icd [ 5%] Building CXX object src/CMakeFiles/VC4CL.dir/common.cpp.o [ 8%] Linking CXX shared library libVC4CL.so [ 82%] Built target VC4CL [ 85%] Linking CXX executable v3d_info [ 88%] Built target v3d_info [ 91%] Linking CXX executable v3d_profile [ 94%] Built target v3d_profile [ 97%] Linking CXX executable vc4cl_dump_analyzer [100%] Built target vc4cl_dump_analyzer Install the project... -- Install configuration: "Debug" -- Installing: /etc/OpenCL/vendors/VC4CL.icd -- Installing: /usr/local/lib/libVC4CL.so.0.4.9999 -- Installing: /usr/local/lib/libVC4CL.so.1.2 -- Set runtime path of "/usr/local/lib/libVC4CL.so.0.4.9999" to "/usr/local/lib" -- Installing: /usr/local/lib/libVC4CL.so -- Installing: /usr/local/share/vc4cl/VC4CL-targets.cmake -- Installing: /usr/local/share/vc4cl/VC4CL-targets-debug.cmake -- Installing: /usr/local/bin/v3d_info -- Set runtime path of "/usr/local/bin/v3d_info" to "/usr/local/lib" -- Installing: /usr/local/bin/v3d_profile -- Set runtime path of "/usr/local/bin/v3d_profile" to "/usr/local/lib" -- Installing: /usr/local/bin/vc4cl_dump_analyzer -- Set runtime path of "/usr/local/bin/vc4cl_dump_analyzer" to "/usr/local/lib"
clinfo で動作確認😍
Raspbian GNU/Linux 12 (bookworm) armv6l
Raspberry Pi Zero W Rev 1.1
$ neofetch
`.::///+:/-. --///+//-:`` dietpi@dietpi-001 `+oooooooooooo: `+oooooooooooo: ----------------- /oooo++//ooooo: ooooo+//+ooooo. OS: Raspbian GNU/Linux 12 (bookworm) armv6l `+ooooooo:-:oo- +o+::/ooooooo: Host: Raspberry Pi Zero W Rev 1.1 `:oooooooo+`` `.oooooooo+- Kernel: 6.1.21+ `:++ooo/. :+ooo+/.` Uptime: 4 days, 1 hour, 16 mins ...` `.----.` ``.. Packages: 1628 (dpkg) .::::-``:::::::::.`-:::-` Shell: zsh 5.9 -:::-` .:::::::-` `-:::- Terminal: /dev/pts/2 `::. `.--.` `` `.---.``.::` CPU: BCM2835 (1) @ 1.100GHz .::::::::` -::::::::` ` Memory: 68MiB / 429MiB .::` .:::::::::- `::::::::::``::. -:::` ::::::::::. ::::::::::.`:::- :::: -::::::::. `-:::::::: :::: -::- .-:::-.``....``.-::-. -::- .. `` .::::::::. `..`.. -:::-` -::::::::::` .:::::` :::::::` -::::::::::` :::::::. .::::::: -::::::::. :::::::: `-:::::` ..--.` ::::::. `...` `...--..` `...` .:::::::::: `.-::::-`
$ sudo clinfo
Number of platforms 1 Platform Name OpenCL for the Raspberry Pi VideoCore IV GPU Platform Vendor doe300 Platform Version OpenCL 1.2 VC4CL 0.4.9999 (b5a6097) Platform Profile EMBEDDED_PROFILE Platform Extensions cl_khr_il_program cl_khr_spir cl_khr_create_command_queue cl_altera_device_temperature cl_altera_live_object_tracking cl_khr_icd cl_khr_extended_versioning cl_khr_spirv_no_integer_wrap_decoration cl_khr_suggested_local_work_size cl_vc4cl_performance_counters Platform Extensions function suffix VC4CL Platform Name OpenCL for the Raspberry Pi VideoCore IV GPU Number of devices 1 Device Name VideoCore IV GPU Device Vendor Broadcom Device Vendor ID 0x14e4 Device Version OpenCL 1.2 VC4CL 0.4.9999 (b5a6097) Device Numeric Version 0x402000 (1.2.0) Driver Version 0.4.9999 Device OpenCL C Version OpenCL C 1.2 Device OpenCL C Numeric Version 0x402000 (1.2.0) Device Type GPU Device Profile EMBEDDED_PROFILE Device Available Yes Compiler Available Yes Linker Available Yes Max compute units 1 Available core IDs (ARM) 0 Max clock frequency 300MHz Core Temperature (Altera) 42 C Device Partition (core) Max number of sub-devices 0 Supported partition types None Supported affinity domains (n/a) Max work item dimensions 3 Max work item sizes 12x12x12 Max work group size 12 Preferred work group size multiple (kernel) 1 Preferred / native vector sizes char 16 / 16 short 16 / 16 int 16 / 16 long 0 / 0 half 0 / 0 (n/a) float 16 / 16 double 0 / 0 (n/a) Half-precision Floating-point support (n/a) Single-precision Floating-point support (core) Denormals No Infinity and NANs No Round to nearest No Round to zero Yes Round to infinity No IEEE754-2008 fused multiply-add No Support is emulated in software No Correctly-rounded divide and sqrt operations No Double-precision Floating-point support (n/a) Address bits 32, Little-Endian Global memory size 67108864 (64MiB) Error Correction support No Max memory allocation 33554432 (32MiB) Unified memory for Host and Device Yes Minimum alignment for any data type 64 bytes Alignment of base address 512 bits (64 bytes) Global Memory cache type Read/Write Global Memory cache size 32768 (32KiB) Global Memory cache line size 64 bytes Image support No Local memory type Global Local memory size 67108864 (64MiB) Max number of constant args 32 Max constant buffer size 67108864 (64MiB) Max size of kernel argument 256 Queue properties Out-of-order execution No Profiling Yes Prefer user sync for interop Yes Profiling timer resolution 1ns Execution capabilities Run OpenCL kernels Yes Run native kernels No IL version SPIR-V_1.5 SPIR_1.2 ILs with version SPIR 0x402000 (1.2.0) SPIR-V 0x405000 (1.5.0) SPIR versions 1.2 printf() buffer size 0 Built-in kernels (n/a) Built-in kernels with version (n/a) Device Extensions cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_nv_pragma_unroll cl_arm_core_id cl_ext_atomic_counters_32 cl_khr_initialize_memory cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_int16 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_khr_expect_assume cl_khr_il_program cl_khr_spir cl_khr_create_command_queue cl_altera_device_temperature cl_altera_live_object_tracking cl_khr_icd cl_khr_extended_versioning cl_khr_spirv_no_integer_wrap_decoration cl_khr_suggested_local_work_size cl_vc4cl_performance_counters Device Extensions with Version cl_khr_global_int32_base_atomics 0x400000 (1.0.0) cl_khr_global_int32_extended_atomics 0x400000 (1.0.0) cl_khr_local_int32_base_atomics 0x400000 (1.0.0) cl_khr_local_int32_extended_atomics 0x400000 (1.0.0) cl_khr_byte_addressable_store 0x400000 (1.0.0) cl_nv_pragma_unroll 0 (0.0.0) cl_arm_core_id 0x800000 (2.0.0) cl_ext_atomic_counters_32 0x1400000 (5.0.0) cl_khr_initialize_memory 0x400000 (1.0.0) cl_arm_integer_dot_product_int8 0xc00000 (3.0.0) cl_arm_integer_dot_product_accumulate_int8 0xc00000 (3.0.0) cl_arm_integer_dot_product_accumulate_int16 0xc00000 (3.0.0) cl_arm_integer_dot_product_accumulate_saturate_int8 0xc00000 (3.0.0) cl_khr_expect_assume 0x400000 (1.0.0) cl_khr_il_program 0x400000 (1.0.0) cl_khr_spir 0x400000 (1.0.0) cl_khr_create_command_queue 0x400000 (1.0.0) cl_altera_device_temperature 0 (0.0.0) cl_altera_live_object_tracking 0 (0.0.0) cl_khr_icd 0x400000 (1.0.0) cl_khr_extended_versioning 0x400000 (1.0.0) cl_khr_spirv_no_integer_wrap_decoration 0 (0.0.0) cl_khr_suggested_local_work_size 0x400000 (1.0.0) cl_vc4cl_performance_counters 0 (0.0.0) NULL platform behavior clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) OpenCL for the Raspberry Pi VideoCore IV GPU clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...) Success [VC4CL] clCreateContext(NULL, ...) [default] Success [VC4CL] clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) Success (1) Platform Name OpenCL for the Raspberry Pi VideoCore IV GPU Device Name VideoCore IV GPU clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) Success (1) Platform Name OpenCL for the Raspberry Pi VideoCore IV GPU Device Name VideoCore IV GPU clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM) No devices found in platform clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL) Success (1) Platform Name OpenCL for the Raspberry Pi VideoCore IV GPU Device Name VideoCore IV GPU ICD loader properties ICD loader Name OpenCL ICD Loader ICD loader Vendor OCL Icd free software ICD loader Version 2.3.1 ICD loader Profile OpenCL 3.0
ベンチマーク
つづく…🤪
$ ll /dev/vcio $ ll /dev/vchiq $ ll /dev/mem