python:pyopencl

PyOpenCL のインストール

ここでは、以下の CPU および GPU を使用してベンチマークを行った。

  • AMD® GPU Radeon HD 5870
  • AMD® CPU Phenom™ II X6 1100T Processor
  • Intel® GPU HD Graphics 4000
  • Intel® CPU Core™ i7-3517U CPU @ 1.90GHz
  • NVIDIA® GPU GeForce GT 640M
  • NVIDIA® Tesla® T4

本家: Home - pyopencl 2021.2.6 documentation
OpenCL本家: OpenCL - The Open Standard for Parallel Programming of Heterogeneous Systems

OpenCL を利用するには OS プラットフォームに関係なく、OpenCL 開発環境構築 が必要である。

PyOpenCL をインストールするには、Microsoft Visual Studio、および、OpenCL 開発環境構築 が必要である。

PyOpenCL 仮想環境の作成を行う。(任意)

$ python -m venv py38opencl
$ . py38opencl\Scripts\activate
(py38opencl) $ python -m pip install --upgrade pip
Collecting pip
  Downloading pip-20.2.3-py2.py3-none-any.whl (1.5 MB)
     |████████████████████████████████| 1.5 MB 656 kB/s
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.1.1
    Uninstalling pip-20.1.1:
      Successfully uninstalled pip-20.1.1
Successfully installed pip-20.2.3

pybind11、Mako をインストールする。

> pip install pybind11 mako
Collecting pybind11
  Downloading pybind11-2.5.0-py2.py3-none-any.whl (296 kB)
     |████████████████████████████████| 296 kB 652 kB/s
Collecting mako
  Downloading Mako-1.1.3-py2.py3-none-any.whl (75 kB)
     |████████████████████████████████| 75 kB 414 kB/s
Collecting MarkupSafe>=0.9.2
  Downloading MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl (16 kB)
Installing collected packages: pybind11, MarkupSafe, mako
Successfully installed MarkupSafe-1.1.1 mako-1.1.3 pybind11-2.5.0

PyOpenCL をインストールする。

> pip install pyopencl
Collecting pyopencl
  Downloading pyopencl-2020.2.2.tar.gz (352 kB)
     |████████████████████████████████| 352 kB 544 kB/s
Collecting numpy
  Using cached numpy-1.19.2-cp38-cp38-win_amd64.whl (13.0 MB)
Collecting pytools>=2017.6
  Downloading pytools-2020.4.tar.gz (67 kB)
     |████████████████████████████████| 67 kB 828 kB/s
Collecting decorator>=3.2.0
  Downloading decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting appdirs>=1.4.0
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting six>=1.8.0
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Using legacy 'setup.py install' for pyopencl, since package 'wheel' is not installed.
Using legacy 'setup.py install' for pytools, since package 'wheel' is not installed.
Installing collected packages: numpy, decorator, appdirs, six, pytools, pyopencl
    Running setup.py install for pytools ... done
    Running setup.py install for pyopencl ... done
Successfully installed appdirs-1.4.4 decorator-4.4.2 numpy-1.19.2 pyopencl-2020.2.2 pytools-2020.4 six-1.15.0

OpenCL のベンチマークには以下のプログラムを使用しました。
https://github.com/stefanv/PyOpenCL/blob/master/examples/benchmark-all.py

Python3 用に修正したもの

benchmark-all.py
# example provided by Roger Pau Monn'e
 
import pyopencl as cl
import numpy
import numpy.linalg as la
import datetime
from time import time
 
a = numpy.random.rand(1000).astype(numpy.float32)
b = numpy.random.rand(1000).astype(numpy.float32)
c_result = numpy.empty_like(a)
 
# Speed in normal CPU usage
time1 = time()
for i in range(1000):
        for j in range(1000):
                c_result[i] = a[i] + b[i]
                c_result[i] = c_result[i] * (a[i] + b[i])
                c_result[i] = c_result[i] * (a[i] / 2.0)
time2 = time()
print("Execution time of test without OpenCL: ", time2 - time1, "s")
 
 
for platform in cl.get_platforms():
    for device in platform.get_devices():
        print("===============================================================")
        print("Platform name:", platform.name)
        print("Platform profile:", platform.profile)
        print("Platform vendor:", platform.vendor)
        print("Platform version:", platform.version)
        print("---------------------------------------------------------------")
        print("Device name:", device.name)
        print("Device type:", cl.device_type.to_string(device.type))
        print("Device memory: ", device.global_mem_size//1024//1024, 'MB')
        print("Device max clock speed:", device.max_clock_frequency, 'MHz')
        print("Device compute units:", device.max_compute_units)
 
        # Simnple speed test
        ctx = cl.Context([device])
        queue = cl.CommandQueue(ctx, 
                properties=cl.command_queue_properties.PROFILING_ENABLE)
 
        mf = cl.mem_flags
        a_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=a)
        b_buf = cl.Buffer(ctx, mf.READ_ONLY | mf.COPY_HOST_PTR, hostbuf=b)
        dest_buf = cl.Buffer(ctx, mf.WRITE_ONLY, b.nbytes)
 
        prg = cl.Program(ctx, """
            __kernel void sum(__global const float *a,
            __global const float *b, __global float *c)
            {
                int loop;
                int gid = get_global_id(0);
                for(loop=0; loop<1000;loop++)
                {
                    c[gid] = a[gid] + b[gid];
                    c[gid] = c[gid] * (a[gid] + b[gid]);
                    c[gid] = c[gid] * (a[gid] / 2.0);
                }
            }
        """).build()
 
        exec_evt = prg.sum(queue, a.shape, None, a_buf, b_buf, dest_buf)
        exec_evt.wait()
        elapsed = 1e-9*(exec_evt.profile.end - exec_evt.profile.start)
 
        #print("Execution time of test: %g s" % elapsed)
        print("Execution time of test: %.10f s" % elapsed)
 
        c = numpy.empty_like(a)
        #cl.enqueue_read_buffer(queue, dest_buf, c).wait()
        cl.enqueue_copy(queue, c, dest_buf)
        error = 0
        for i in range(1000):
                if c[i] != c_result[i]:
                        error = 1
        if error:
                print("Results doesn't match!!")
        else:
                print("Results OK")

MGC TheCircle CPU GPU
HIS Radeon HD 5870

TDP: 188W
FLOPS: 2.72 TFLOPS
GPU Clock: 850 MHz
Memory Clock: 1200 MHz
Shading Units: 1400

HIS Radeon HD 5870

AMD Phenom(™) II X6 1100T Processor, Black Edition 3.30GHz

TDP: 125W
FLOPS: 79.2 GFLOPS
CPU Clock: 3.30 GHz

※FLOPS は理論値(4 FLOPS/Clock × 3.3GHz × 6コア)
AMD Phenom(™) II X6 1100T Processor 3.30GHz

> python benchmark-all.py
Execution time of test without OpenCL:  9.64494013786316 s
===============================================================
Platform name: AMD Accelerated Parallel Processing
Platform profile: FULL_PROFILE
Platform vendor: Advanced Micro Devices, Inc.
Platform version: OpenCL 2.0 AMD-APP (1800.11)
---------------------------------------------------------------
Device name: Cypress
Device type: GPU
Device memory:  1024 MB
Device max clock speed: 850 MHz
Device compute units: 20
Execution time of test: 0.0000072220 s
Results OK
===============================================================
Platform name: AMD Accelerated Parallel Processing
Platform profile: FULL_PROFILE
Platform vendor: Advanced Micro Devices, Inc.
Platform version: OpenCL 2.0 AMD-APP (1800.11)
---------------------------------------------------------------
Device name: AMD Phenom(tm) II X6 1100T Processor
Device type: CPU
Device memory:  16382 MB
Device max clock speed: 3311 MHz
Device compute units: 6
Execution time of test: 0.0010633330 s
Results OK

LB-L561S CPU GPU
NVIDIA GeForce GT 640M

TDP: 32 W
FLOPS: 480 GFLOPS
GPU Clock: 625 MHz
Memory Clock: 900 MHz
              1800 MHz effective
Shading Units: 384

NVIDIA GeForce GT 640M

Intel(R) HD Graphics 4000

TDP: 45W
FLOPS: 217.6~332.8 GFLOPS
GPU Clock: 350 MHz
          1150 MHz(Boost)
Memory Clock: System Shared
Shading Units: 128


Intel® Core(™) i7-3517U CPU @ 1.90GHz

TDP: 17W
FLOPS: 30.4 GFLOPS
CPU Clock: 1.90 GHz

※FLOPS は理論値(8 FLOPS/Clock × 1.9GHz × 2コア)

Execution time of test without OpenCL:  10.292678594589233 s
===============================================================
Platform name: NVIDIA CUDA
Platform profile: FULL_PROFILE
Platform vendor: NVIDIA Corporation
Platform version: OpenCL 1.2 CUDA 10.1.131
---------------------------------------------------------------
Device name: GeForce GT 640M
Device type: GPU
Device memory:  1024 MB
Device max clock speed: 708 MHz
Device compute units: 2
Execution time of test: 0.0015742400 s
Results OK
===============================================================
Platform name: Intel(R) OpenCL
Platform profile: FULL_PROFILE
Platform vendor: Intel(R) Corporation
Platform version: OpenCL 1.2
---------------------------------------------------------------
Device name:        Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz
Device type: CPU
Device memory:  16263 MB
Device max clock speed: 1900 MHz
Device compute units: 4
C:\Python37\lib\site-packages\pyopencl\__init__.py:235: CompilerWarning: Non-empty compiler output encountered. Set the environment variable PYOPENCL_COMPILER_OUTPUT=1 to see more.
  "to see more.", CompilerWarning)
Execution time of test: 0.0011095000 s
Results OK
===============================================================
Platform name: Intel(R) OpenCL
Platform profile: FULL_PROFILE
Platform vendor: Intel(R) Corporation
Platform version: OpenCL 1.2
---------------------------------------------------------------
Device name: Intel(R) HD Graphics 4000
Device type: GPU
Device memory:  1400 MB
Device max clock speed: 1150 MHz
Device compute units: 16
Execution time of test: 0.0007947200 s
Results OK

CPU: Intel® Xeon® CPU @ 2.30GHz
GPU: NVIDIA® Tesla® T4

TDP: 70W
FLOPS: 8.141 TFLOPS
GPU Clock: 585 MHz
          1590 MHz(Boost)
Memory Clock: 1250 MHz
Shading Units: 2560


Execution time of test without OpenCL:  5.938735008239746 s
===============================================================
Platform name: NVIDIA CUDA
Platform profile: FULL_PROFILE
Platform vendor: NVIDIA Corporation
Platform version: OpenCL 1.2 CUDA 10.1.152
---------------------------------------------------------------
Device name: Tesla P4
Device type: ALL | GPU
Device memory:  7611 MB
Device max clock speed: 1113 MHz
Device compute units: 20
Execution time of test: 0.0010557440 s
Results OK

DietPi で pyopencl をインストールすると CL/cl.h がないと言われる…🤔

$ pipx runpip jupyterlab4 install -v pyopencl

Using pip 24.0 from /home/dietpi/.local/pipx/shared/lib/python3.11/site-packages/pip (python 3.11)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/
Collecting pyopencl
  Downloading pyopencl-2024.1.tar.gz (473 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 473.9/473.9 kB 380.3 kB/s eta 0:00:00
  Running command pip subprocess to install build dependencies
  Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/, https://www.piwheels.org/simple/
  Ignoring numpy: markers 'python_version >= "3.9" and platform_python_implementation == "PyPy"' don't match your environment
  Collecting setuptools>=42.0.0
    Downloading https://www.piwheels.org/simple/setuptools/setuptools-69.5.1-py3-none-any.whl (894 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 894.6/894.6 kB 331.6 kB/s eta 0:00:00
  Collecting wheel>=0.34.2
    Downloading https://www.piwheels.org/simple/wheel/wheel-0.43.0-py3-none-any.whl (65 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.8/65.8 kB 236.9 kB/s eta 0:00:00
  Collecting oldest-supported-numpy
    Downloading https://www.piwheels.org/simple/oldest-supported-numpy/oldest_supported_numpy-2023.12.21-py3-none-any.whl (4.9 kB)
  Collecting pybind11>=2.5.0
    Downloading https://www.piwheels.org/simple/pybind11/pybind11-2.12.0-py3-none-any.whl (234 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.0/235.0 kB 95.3 kB/s eta 0:00:00
  Collecting numpy==1.23.2 (from oldest-supported-numpy)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /simple/numpy/numpy-1.23.2-cp311-cp311-linux_armv6l.whl
    Downloading https://www.piwheels.org/simple/numpy/numpy-1.23.2-cp311-cp311-linux_armv6l.whl (12.4 MB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.4/12.4 MB 289.6 kB/s eta 0:00:00
  Installing collected packages: wheel, setuptools, pybind11, numpy, oldest-supported-numpy
  Successfully installed numpy-1.23.2 oldest-supported-numpy-2023.12.21 pybind11-2.12.0 setuptools-69.5.1 wheel-0.43.0
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  running egg_info
  writing pyopencl.egg-info/PKG-INFO
  writing dependency_links to pyopencl.egg-info/dependency_links.txt
  writing requirements to pyopencl.egg-info/requires.txt
  writing top-level names to pyopencl.egg-info/top_level.txt
  reading manifest file 'pyopencl.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'experiments/*.py'
  warning: no previously-included files matching '*' found under directory '_skbuild'
  adding license file 'LICENSE'
  writing manifest file 'pyopencl.egg-info/SOURCES.txt'
  Getting requirements to build wheel ... done
  Running command Preparing metadata (pyproject.toml)
  running dist_info
  creating /var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info
  writing /var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/PKG-INFO
  writing dependency_links to /var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/dependency_links.txt
  writing requirements to /var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/requires.txt
  writing top-level names to /var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/top_level.txt
  writing manifest file '/var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/SOURCES.txt'
  reading manifest file '/var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'experiments/*.py'
  warning: no previously-included files matching '*' found under directory '_skbuild'
  adding license file 'LICENSE'
  writing manifest file '/var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl.egg-info/SOURCES.txt'
  creating '/var/tmp/pip-modern-metadata-pmpmdxy1/pyopencl-2024.1.dist-info'
  Preparing metadata (pyproject.toml) ... done
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/3a/be/650f9c091ef71cb01d735775d554e068752d3ff63d7943b26316dc401749/numpy-1.21.2.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/5f/d6/ad58ded26556eaeaa8c971e08b6466f17c4ac4d786cd3d800e26ce59cc01/numpy-1.21.3.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/fb/48/b0708ebd7718a8933f0d3937513ef8ef2f4f04529f1f66ca86d873043921/numpy-1.21.4.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/c2/a8/a924a09492bdfee8c2ec3094d0a13f2799800b4fdc9c890738aeeb12c72e/numpy-1.21.5.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/45/b7/de7b8e67f2232c26af57c205aaad29fe17754f793404f59c8a730c7a191a/numpy-1.21.6.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
Collecting numpy (from pyopencl)
  Downloading https://www.piwheels.org/simple/numpy/numpy-1.26.4-cp311-cp311-linux_armv6l.whl (5.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6/5.6 MB 312.2 kB/s eta 0:00:00
Collecting pytools>=2021.2.7 (from pyopencl)
  Downloading https://www.piwheels.org/simple/pytools/pytools-2024.1.1-py2.py3-none-any.whl (85 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.1/85.1 kB 216.0 kB/s eta 0:00:00
Requirement already satisfied: platformdirs>=2.2.0 in ./.local/pipx/venvs/jupyterlab4/lib/python3.11/site-packages (from pyopencl) (4.2.0)
Building wheels for collected packages: pyopencl
  Running command Building wheel for pyopencl (pyproject.toml)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv6l-cpython-311
  creating build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/bitonic_sort_templates.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/elementwise.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/array.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/bitonic_sort.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/clmath.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/tools.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/cltypes.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/cache.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/_mymako.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/version.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/clrandom.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/reduction.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/invoker.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/algorithm.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/ipython_ext.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/_cluda.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/scan.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/capture_call.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  creating build/lib.linux-armv6l-cpython-311/pyopencl/characterize
  copying pyopencl/characterize/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl/characterize
  copying pyopencl/characterize/performance.py -> build/lib.linux-armv6l-cpython-311/pyopencl/characterize
  creating build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  copying pyopencl/compyte/array.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  copying pyopencl/compyte/dtypes.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  copying pyopencl/compyte/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  creating build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/gen_elemwise.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/test_gpu_ndarray.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/setup_opencl.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/gen_reduction.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/test_gpu_elemwise.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  running egg_info
  writing pyopencl.egg-info/PKG-INFO
  writing dependency_links to pyopencl.egg-info/dependency_links.txt
  writing requirements to pyopencl.egg-info/requires.txt
  writing top-level names to pyopencl.egg-info/top_level.txt
  reading manifest file 'pyopencl.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'experiments/*.py'
  warning: no previously-included files matching '*' found under directory '_skbuild'
  adding license file 'LICENSE'
  writing manifest file 'pyopencl.egg-info/SOURCES.txt'
  /var/tmp/pip-build-env-ry89326d/overlay/lib/python3.11/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'pyopencl.cl' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'pyopencl.cl' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'pyopencl.cl' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'pyopencl.cl' to be distributed and are
          already explicitly excluding 'pyopencl.cl' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  creating build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-airy.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-bessel-j-complex.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-bessel-j.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-bessel-y.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-complex.h -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-eval-tbl.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-hankel-complex.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-ranluxcl.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  creating build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/array.h -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/openclfeatures.h -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/philox.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/threefry.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  running build_ext
  creating var
  creating var/tmp
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c /var/tmp/tmpibr5rk4l.cpp -o var/tmp/tmpibr5rk4l.o -std=gnu++14
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c /var/tmp/tmpt_mf4j7t.cpp -o var/tmp/tmpt_mf4j7t.o -fvisibility=hidden
  building 'pyopencl._cl' extension
  creating build/temp.linux-armv6l-cpython-311
  creating build/temp.linux-armv6l-cpython-311/src
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-ry89326d/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-ry89326d/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/bitlog.cpp -o build/temp.linux-armv6l-cpython-311/src/bitlog.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden

  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-ry89326d/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-ry89326d/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/wrap_cl.cpp -o build/temp.linux-armv6l-cpython-311/src/wrap_cl.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  In file included from src/wrap_cl.cpp:29:
  src/wrap_cl.hpp:70:10: fatal error: CL/cl.h: No such file or directory
     70 | #include <CL/cl.h>
        |          ^~~~~~~~~
  compilation terminated.
  error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
  error: subprocess-exited-with-error
  
  × Building wheel for pyopencl (pyproject.toml) did not run successfully.
   exit code: 1
  ╰─> See above for output.
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /home/dietpi/.local/pipx/venvs/jupyterlab4/bin/python /home/dietpi/.local/pipx/shared/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /var/tmp/tmpju1zw3xq
  cwd: /var/tmp/pip-install-ktrib8gc/pyopencl_d2eaf0ec32a6412abe8e66d854596fad
  Building wheel for pyopencl (pyproject.toml) ... error
  ERROR: Failed building wheel for pyopencl
Failed to build pyopencl
ERROR: Could not build wheels for pyopencl, which is required to install pyproject.toml-based projects
'/home/dietpi/.local/pipx/venvs/jupyterlab4/bin/python -m pip install -v pyopencl' failed

不足している opencl-headers をインストールする…🤔

$ sudo apt install opencl-headers

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  opencl-c-headers opencl-clhpp-headers
Suggested packages:
  opencl-clhpp-headers-doc
The following NEW packages will be installed:
  opencl-c-headers opencl-clhpp-headers opencl-headers
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 90.9 kB of archives.
After this operation, 742 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf opencl-c-headers all 3.0~2023.02.06-1 [43.6 kB]
Get:2 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf opencl-clhpp-headers all 3.0~2023.02.06-1 [44.4 kB]
Get:3 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf opencl-headers all 3.0~2023.02.06-1 [2,984 B]
Fetched 90.9 kB in 3s (28.1 kB/s)    
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package opencl-c-headers.
(Reading database ... 141224 files and directories currently installed.)
Preparing to unpack .../opencl-c-headers_3.0~2023.02.06-1_all.deb ...
Unpacking opencl-c-headers (3.0~2023.02.06-1) ...
Selecting previously unselected package opencl-clhpp-headers.
Preparing to unpack .../opencl-clhpp-headers_3.0~2023.02.06-1_all.deb ...
Unpacking opencl-clhpp-headers (3.0~2023.02.06-1) ...
Selecting previously unselected package opencl-headers.
Preparing to unpack .../opencl-headers_3.0~2023.02.06-1_all.deb ...
Unpacking opencl-headers (3.0~2023.02.06-1) ...
Setting up opencl-c-headers (3.0~2023.02.06-1) ...
Setting up opencl-clhpp-headers (3.0~2023.02.06-1) ...
Setting up opencl-headers (3.0~2023.02.06-1) ...

/usr/bin/ld: cannot find -lOpenCL: No such file or directory と言われる…🤔

$ pipx runpip jupyterlab4 install -v pyopencl

Using pip 24.0 from /home/dietpi/.local/pipx/shared/lib/python3.11/site-packages/pip (python 3.11)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/
Collecting pyopencl
  Downloading pyopencl-2024.1.tar.gz (473 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 473.9/473.9 kB 167.2 kB/s eta 0:00:00
  Running command pip subprocess to install build dependencies
...
  arm-linux-gnueabihf-g++ -shared -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-armv6l-cpython-311/src/bitlog.o build/temp.linux-armv6l-cpython-311/src/wrap_cl.o build/temp.linux-armv6l-cpython-311/src/wrap_cl_part_1.o build/temp.linux-armv6l-cpython-311/src/wrap_cl_part_2.o build/temp.linux-armv6l-cpython-311/src/wrap_constants.o build/temp.linux-armv6l-cpython-311/src/wrap_mempool.o -L/usr/lib/arm-linux-gnueabihf -lOpenCL -o build/lib.linux-armv6l-cpython-311/pyopencl/_cl.cpython-311-arm-linux-gnueabihf.so -Wl,--no-as-needed
  /usr/bin/ld: cannot find -lOpenCL: No such file or directory
  collect2: error: ld returned 1 exit status
  error: command '/usr/bin/arm-linux-gnueabihf-g++' failed with exit code 1
  error: subprocess-exited-with-error
  
  × Building wheel for pyopencl (pyproject.toml) did not run successfully.
   exit code: 1
  ╰─> See above for output.
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: /home/dietpi/.local/pipx/venvs/jupyterlab4/bin/python /home/dietpi/.local/pipx/shared/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /var/tmp/tmpyzhsl8yg
  cwd: /var/tmp/pip-install-5l0xbf79/pyopencl_39664cd03bea4d028f8a73bd6abaf1aa
  Building wheel for pyopencl (pyproject.toml) ... error
  ERROR: Failed building wheel for pyopencl
Failed to build pyopencl
ERROR: Could not build wheels for pyopencl, which is required to install pyproject.toml-based projects
'/home/dietpi/.local/pipx/venvs/jupyterlab4/bin/python -m pip install -v pyopencl' failed

不足している ocl-icd-opencl-dev ocl-icd-dev をインストールする…🤔

$ sudo apt install ocl-icd-opencl-dev ocl-icd-dev

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Recommended packages:
  libgl-dev
The following NEW packages will be installed:
  ocl-icd-dev ocl-icd-opencl-dev
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.5 kB of archives.
After this operation, 116 kB of additional disk space will be used.
Get:1 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bookworm/main armhf ocl-icd-dev armhf 2.3.1-1 [17.9 kB]
Get:2 http://ftp.udx.icscoe.jp/Linux/raspbian/raspbian bookworm/main armhf ocl-icd-opencl-dev armhf 2.3.1-1 [11.6 kB]
Fetched 29.5 kB in 2s (12.3 kB/s)        
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package ocl-icd-dev:armhf.
(Reading database ... 141263 files and directories currently installed.)
Preparing to unpack .../ocl-icd-dev_2.3.1-1_armhf.deb ...
Unpacking ocl-icd-dev:armhf (2.3.1-1) ...
Selecting previously unselected package ocl-icd-opencl-dev:armhf.
Preparing to unpack .../ocl-icd-opencl-dev_2.3.1-1_armhf.deb ...
Unpacking ocl-icd-opencl-dev:armhf (2.3.1-1) ...
Setting up ocl-icd-dev:armhf (2.3.1-1) ...
Setting up ocl-icd-opencl-dev:armhf (2.3.1-1) ...

ビルド成功😍

$ sudo apt install ocl-icd-opencl-dev ocl-icd-dev

Using pip 24.0 from /home/dietpi/.local/pipx/shared/lib/python3.11/site-packages/pip (python 3.11)
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/
Collecting pyopencl
  Downloading pyopencl-2024.1.tar.gz (473 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 473.9/473.9 kB 261.0 kB/s eta 0:00:00
  Running command pip subprocess to install build dependencies
  Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple/, https://www.piwheels.org/simple/
  Ignoring numpy: markers 'python_version >= "3.9" and platform_python_implementation == "PyPy"' don't match your environment
  Collecting setuptools>=42.0.0
    Downloading https://www.piwheels.org/simple/setuptools/setuptools-69.5.1-py3-none-any.whl (894 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 894.6/894.6 kB 310.9 kB/s eta 0:00:00
  Collecting wheel>=0.34.2
    Downloading https://www.piwheels.org/simple/wheel/wheel-0.43.0-py3-none-any.whl (65 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.8/65.8 kB 382.3 kB/s eta 0:00:00
  Collecting oldest-supported-numpy
    Downloading https://www.piwheels.org/simple/oldest-supported-numpy/oldest_supported_numpy-2023.12.21-py3-none-any.whl (4.9 kB)
  Collecting pybind11>=2.5.0
    Downloading https://www.piwheels.org/simple/pybind11/pybind11-2.12.0-py3-none-any.whl (234 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.0/235.0 kB 262.0 kB/s eta 0:00:00
  Collecting numpy==1.23.2 (from oldest-supported-numpy)
    Downloading https://www.piwheels.org/simple/numpy/numpy-1.23.2-cp311-cp311-linux_armv6l.whl (12.4 MB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.4/12.4 MB 404.2 kB/s eta 0:00:00
  Installing collected packages: wheel, setuptools, pybind11, numpy, oldest-supported-numpy
  Successfully installed numpy-1.23.2 oldest-supported-numpy-2023.12.21 pybind11-2.12.0 setuptools-69.5.1 wheel-0.43.0
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  running egg_info
  writing pyopencl.egg-info/PKG-INFO
  writing dependency_links to pyopencl.egg-info/dependency_links.txt
  writing requirements to pyopencl.egg-info/requires.txt
  writing top-level names to pyopencl.egg-info/top_level.txt
  reading manifest file 'pyopencl.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'experiments/*.py'
  warning: no previously-included files matching '*' found under directory '_skbuild'
  adding license file 'LICENSE'
  writing manifest file 'pyopencl.egg-info/SOURCES.txt'
  Getting requirements to build wheel ... done
  Running command Preparing metadata (pyproject.toml)
  running dist_info
  creating /var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info
  writing /var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/PKG-INFO
  writing dependency_links to /var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/dependency_links.txt
  writing requirements to /var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/requires.txt
  writing top-level names to /var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/top_level.txt
  writing manifest file '/var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/SOURCES.txt'
  reading manifest file '/var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'experiments/*.py'
  warning: no previously-included files matching '*' found under directory '_skbuild'
  adding license file 'LICENSE'
  writing manifest file '/var/tmp/pip-modern-metadata-i083u3n_/pyopencl.egg-info/SOURCES.txt'
  creating '/var/tmp/pip-modern-metadata-i083u3n_/pyopencl-2024.1.dist-info'
  Preparing metadata (pyproject.toml) ... done
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/3a/be/650f9c091ef71cb01d735775d554e068752d3ff63d7943b26316dc401749/numpy-1.21.2.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/5f/d6/ad58ded26556eaeaa8c971e08b6466f17c4ac4d786cd3d800e26ce59cc01/numpy-1.21.3.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/fb/48/b0708ebd7718a8933f0d3937513ef8ef2f4f04529f1f66ca86d873043921/numpy-1.21.4.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/c2/a8/a924a09492bdfee8c2ec3094d0a13f2799800b4fdc9c890738aeeb12c72e/numpy-1.21.5.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
  Link requires a different Python (3.11.2 not in: '>=3.7,<3.11'): https://files.pythonhosted.org/packages/45/b7/de7b8e67f2232c26af57c205aaad29fe17754f793404f59c8a730c7a191a/numpy-1.21.6.zip (from https://pypi.org/simple/numpy/) (requires-python:>=3.7,<3.11)
Collecting numpy (from pyopencl)
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))': /simple/numpy/numpy-1.26.4-cp311-cp311-linux_armv6l.whl
  Downloading https://www.piwheels.org/simple/numpy/numpy-1.26.4-cp311-cp311-linux_armv6l.whl (5.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.6/5.6 MB 393.0 kB/s eta 0:00:00
Collecting pytools>=2021.2.7 (from pyopencl)
  Downloading https://www.piwheels.org/simple/pytools/pytools-2024.1.1-py2.py3-none-any.whl (85 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.1/85.1 kB 169.0 kB/s eta 0:00:00
Requirement already satisfied: platformdirs>=2.2.0 in ./.local/pipx/venvs/jupyterlab4/lib/python3.11/site-packages (from pyopencl) (4.2.0)
Building wheels for collected packages: pyopencl
  Running command Building wheel for pyopencl (pyproject.toml)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv6l-cpython-311
  creating build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/bitonic_sort_templates.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/elementwise.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/array.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/bitonic_sort.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/clmath.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/tools.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/cltypes.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/cache.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/_mymako.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/version.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/clrandom.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/reduction.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/invoker.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/algorithm.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/ipython_ext.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/_cluda.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/scan.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  copying pyopencl/capture_call.py -> build/lib.linux-armv6l-cpython-311/pyopencl
  creating build/lib.linux-armv6l-cpython-311/pyopencl/characterize
  copying pyopencl/characterize/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl/characterize
  copying pyopencl/characterize/performance.py -> build/lib.linux-armv6l-cpython-311/pyopencl/characterize
  creating build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  copying pyopencl/compyte/array.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  copying pyopencl/compyte/dtypes.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  copying pyopencl/compyte/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte
  creating build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/gen_elemwise.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/test_gpu_ndarray.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/setup_opencl.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/__init__.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/gen_reduction.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  copying pyopencl/compyte/ndarray/test_gpu_elemwise.py -> build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray
  running egg_info
  writing pyopencl.egg-info/PKG-INFO
  writing dependency_links to pyopencl.egg-info/dependency_links.txt
  writing requirements to pyopencl.egg-info/requires.txt
  writing top-level names to pyopencl.egg-info/top_level.txt
  reading manifest file 'pyopencl.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'experiments/*.py'
  warning: no previously-included files matching '*' found under directory '_skbuild'
  adding license file 'LICENSE'
  writing manifest file 'pyopencl.egg-info/SOURCES.txt'
  /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/setuptools/command/build_py.py:207: _Warning: Package 'pyopencl.cl' is absent from the `packages` configuration.
  !!

          ********************************************************************************
          ############################
          # Package would be ignored #
          ############################
          Python recognizes 'pyopencl.cl' as an importable package[^1],
          but it is absent from setuptools' `packages` configuration.

          This leads to an ambiguous overall configuration. If you want to distribute this
          package, please make sure that 'pyopencl.cl' is explicitly added
          to the `packages` configuration field.

          Alternatively, you can also rely on setuptools' discovery methods
          (for example by using `find_namespace_packages(...)`/`find_namespace:`
          instead of `find_packages(...)`/`find:`).

          You can read more about "package discovery" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

          If you don't want 'pyopencl.cl' to be distributed and are
          already explicitly excluding 'pyopencl.cl' via
          `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
          you can try to use `exclude_package_data`, or `include-package-data=False` in
          combination with a more fine grained `package-data` configuration.

          You can read more about "package data files" on setuptools documentation page:

          - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


          [^1]: For Python, any directory (with suitable naming) can be imported,
                even if it does not contain any `.py` files.
                On the other hand, currently there is no concept of package data
                directory, all directories are treated like packages.
          ********************************************************************************

  !!
    check.warn(importable)
  creating build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-airy.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-bessel-j-complex.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-bessel-j.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-bessel-y.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-complex.h -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-eval-tbl.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-hankel-complex.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  copying pyopencl/cl/pyopencl-ranluxcl.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl
  creating build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/array.h -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/openclfeatures.h -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/philox.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  copying pyopencl/cl/pyopencl-random123/threefry.cl -> build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123
  running build_ext
  creating var
  creating var/tmp
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c /var/tmp/tmp8yqop67k.cpp -o var/tmp/tmp8yqop67k.o -std=gnu++14
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c /var/tmp/tmpz4s1771z.cpp -o var/tmp/tmpz4s1771z.o -fvisibility=hidden
  building 'pyopencl._cl' extension
  creating build/temp.linux-armv6l-cpython-311
  creating build/temp.linux-armv6l-cpython-311/src
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/bitlog.cpp -o build/temp.linux-armv6l-cpython-311/src/bitlog.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/wrap_cl.cpp -o build/temp.linux-armv6l-cpython-311/src/wrap_cl.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  In file included from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from src/wrap_cl.hpp:101,
                   from src/wrap_cl.cpp:29:
  /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/wrap_cl_part_1.cpp -o build/temp.linux-armv6l-cpython-311/src/wrap_cl_part_1.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  In file included from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from src/wrap_cl.hpp:101,
                   from src/wrap_cl_part_1.cpp:30:
  /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/wrap_cl_part_2.cpp -o build/temp.linux-armv6l-cpython-311/src/wrap_cl_part_2.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  In file included from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from src/wrap_cl.hpp:101,
                   from src/wrap_cl_part_2.cpp:31:
  /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  src/wrap_cl.hpp: In function ‘pyopencl::event* pyopencl::enqueue_svm_map(command_queue&, cl_bool, cl_map_flags, svm_pointer&, pybind11::object, pybind11::object)’:
  src/wrap_cl.hpp:4025:34: warning: ‘size’ may be used uninitialized [-Wmaybe-uninitialized]
   4025 |       if (have_size && user_size > size)
        |                        ~~~~~~~~~~^~~~~~
  src/wrap_cl.hpp:4015:12: note: ‘size’ was declared here
   4015 |     size_t size;
        |            ^~~~
  src/wrap_cl.hpp: In function ‘pyopencl::event* pyopencl::enqueue_svm_memfill(command_queue&, svm_pointer&, pybind11::object, pybind11::object, pybind11::object)’:
  src/wrap_cl.hpp:3970:34: warning: ‘size’ may be used uninitialized [-Wmaybe-uninitialized]
   3970 |       if (have_size && user_size > size)
        |                        ~~~~~~~~~~^~~~~~
  src/wrap_cl.hpp:3960:12: note: ‘size’ was declared here
   3960 |     size_t size;
        |            ^~~~
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/wrap_constants.cpp -o build/temp.linux-armv6l-cpython-311/src/wrap_constants.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  In file included from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from src/wrap_cl.hpp:101,
                   from src/wrap_constants.cpp:30:
  /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  arm-linux-gnueabihf-gcc -Wsign-compare -fwrapv -Wall -O3 -DNDEBUG -fPIC -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/pybind11/include -I/var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include -I/home/dietpi/.local/pipx/venvs/jupyterlab4/include -I/usr/include/python3.11 -c -std=gnu++14 src/wrap_mempool.cpp -o build/temp.linux-armv6l-cpython-311/src/wrap_mempool.o -fvisibility=hidden -DVERSION_INFO=\"2024.1\" -fvisibility=hidden
  In file included from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarraytypes.h:1948,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                   from /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                   from src/wrap_cl.hpp:101,
                   from src/wrap_mempool.cpp:37:
  /var/tmp/pip-build-env-qza3q78r/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
     17 | #warning "Using deprecated NumPy API, disable it with " \
        |  ^~~~~~~
  arm-linux-gnueabihf-g++ -shared -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-armv6l-cpython-311/src/bitlog.o build/temp.linux-armv6l-cpython-311/src/wrap_cl.o build/temp.linux-armv6l-cpython-311/src/wrap_cl_part_1.o build/temp.linux-armv6l-cpython-311/src/wrap_cl_part_2.o build/temp.linux-armv6l-cpython-311/src/wrap_constants.o build/temp.linux-armv6l-cpython-311/src/wrap_mempool.o -L/usr/lib/arm-linux-gnueabihf -lOpenCL -o build/lib.linux-armv6l-cpython-311/pyopencl/_cl.cpython-311-arm-linux-gnueabihf.so -Wl,--no-as-needed
  installing to build/bdist.linux-armv6l/wheel
  running install
  running install_lib
  creating build/bdist.linux-armv6l
  creating build/bdist.linux-armv6l/wheel
  creating build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/bitonic_sort_templates.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/elementwise.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/array.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/bitonic_sort.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/_cl.cpython-311-arm-linux-gnueabihf.so -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/clmath.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/tools.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cltypes.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cache.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/_mymako.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/version.py -> build/bdist.linux-armv6l/wheel/pyopencl
  creating build/bdist.linux-armv6l/wheel/pyopencl/characterize
  copying build/lib.linux-armv6l-cpython-311/pyopencl/characterize/__init__.py -> build/bdist.linux-armv6l/wheel/pyopencl/characterize
  copying build/lib.linux-armv6l-cpython-311/pyopencl/characterize/performance.py -> build/bdist.linux-armv6l/wheel/pyopencl/characterize
  copying build/lib.linux-armv6l-cpython-311/pyopencl/__init__.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/clrandom.py -> build/bdist.linux-armv6l/wheel/pyopencl
  creating build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-bessel-y.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-eval-tbl.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-ranluxcl.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-hankel-complex.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-bessel-j-complex.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-bessel-j.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-complex.h -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-airy.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl
  creating build/bdist.linux-armv6l/wheel/pyopencl/cl/pyopencl-random123
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123/openclfeatures.h -> build/bdist.linux-armv6l/wheel/pyopencl/cl/pyopencl-random123
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123/philox.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl/pyopencl-random123
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123/threefry.cl -> build/bdist.linux-armv6l/wheel/pyopencl/cl/pyopencl-random123
  copying build/lib.linux-armv6l-cpython-311/pyopencl/cl/pyopencl-random123/array.h -> build/bdist.linux-armv6l/wheel/pyopencl/cl/pyopencl-random123
  copying build/lib.linux-armv6l-cpython-311/pyopencl/reduction.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/invoker.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/algorithm.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/ipython_ext.py -> build/bdist.linux-armv6l/wheel/pyopencl
  creating build/bdist.linux-armv6l/wheel/pyopencl/compyte
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/array.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/dtypes.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte
  creating build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray/gen_elemwise.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray/test_gpu_ndarray.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray/setup_opencl.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray/__init__.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray/gen_reduction.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/ndarray/test_gpu_elemwise.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte/ndarray
  copying build/lib.linux-armv6l-cpython-311/pyopencl/compyte/__init__.py -> build/bdist.linux-armv6l/wheel/pyopencl/compyte
  copying build/lib.linux-armv6l-cpython-311/pyopencl/_cluda.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/scan.py -> build/bdist.linux-armv6l/wheel/pyopencl
  copying build/lib.linux-armv6l-cpython-311/pyopencl/capture_call.py -> build/bdist.linux-armv6l/wheel/pyopencl
  running install_egg_info
  Copying pyopencl.egg-info to build/bdist.linux-armv6l/wheel/pyopencl-2024.1-py3.11.egg-info
  running install_scripts
  creating build/bdist.linux-armv6l/wheel/pyopencl-2024.1.dist-info/WHEEL
  creating '/var/tmp/pip-wheel-kyepds47/.tmp-_dqcawc0/pyopencl-2024.1-cp311-cp311-linux_armv6l.whl' and adding 'build/bdist.linux-armv6l/wheel' to it
  adding 'pyopencl/__init__.py'
  adding 'pyopencl/_cl.cpython-311-arm-linux-gnueabihf.so'
  adding 'pyopencl/_cluda.py'
  adding 'pyopencl/_mymako.py'
  adding 'pyopencl/algorithm.py'
  adding 'pyopencl/array.py'
  adding 'pyopencl/bitonic_sort.py'
  adding 'pyopencl/bitonic_sort_templates.py'
  adding 'pyopencl/cache.py'
  adding 'pyopencl/capture_call.py'
  adding 'pyopencl/clmath.py'
  adding 'pyopencl/clrandom.py'
  adding 'pyopencl/cltypes.py'
  adding 'pyopencl/elementwise.py'
  adding 'pyopencl/invoker.py'
  adding 'pyopencl/ipython_ext.py'
  adding 'pyopencl/reduction.py'
  adding 'pyopencl/scan.py'
  adding 'pyopencl/tools.py'
  adding 'pyopencl/version.py'
  adding 'pyopencl/characterize/__init__.py'
  adding 'pyopencl/characterize/performance.py'
  adding 'pyopencl/cl/pyopencl-airy.cl'
  adding 'pyopencl/cl/pyopencl-bessel-j-complex.cl'
  adding 'pyopencl/cl/pyopencl-bessel-j.cl'
  adding 'pyopencl/cl/pyopencl-bessel-y.cl'
  adding 'pyopencl/cl/pyopencl-complex.h'
  adding 'pyopencl/cl/pyopencl-eval-tbl.cl'
  adding 'pyopencl/cl/pyopencl-hankel-complex.cl'
  adding 'pyopencl/cl/pyopencl-ranluxcl.cl'
  adding 'pyopencl/cl/pyopencl-random123/array.h'
  adding 'pyopencl/cl/pyopencl-random123/openclfeatures.h'
  adding 'pyopencl/cl/pyopencl-random123/philox.cl'
  adding 'pyopencl/cl/pyopencl-random123/threefry.cl'
  adding 'pyopencl/compyte/__init__.py'
  adding 'pyopencl/compyte/array.py'
  adding 'pyopencl/compyte/dtypes.py'
  adding 'pyopencl/compyte/ndarray/__init__.py'
  adding 'pyopencl/compyte/ndarray/gen_elemwise.py'
  adding 'pyopencl/compyte/ndarray/gen_reduction.py'
  adding 'pyopencl/compyte/ndarray/setup_opencl.py'
  adding 'pyopencl/compyte/ndarray/test_gpu_elemwise.py'
  adding 'pyopencl/compyte/ndarray/test_gpu_ndarray.py'
  adding 'pyopencl-2024.1.dist-info/LICENSE'
  adding 'pyopencl-2024.1.dist-info/METADATA'
  adding 'pyopencl-2024.1.dist-info/WHEEL'
  adding 'pyopencl-2024.1.dist-info/top_level.txt'
  adding 'pyopencl-2024.1.dist-info/RECORD'
  removing build/bdist.linux-armv6l/wheel
  Building wheel for pyopencl (pyproject.toml) ... done
  Created wheel for pyopencl: filename=pyopencl-2024.1-cp311-cp311-linux_armv6l.whl size=696905 sha256=058c3a76013776f403eb910c80dfd254da8b4fbda2c89b4b41e0e65877bf4ee7
  Stored in directory: /var/tmp/pip-ephem-wheel-cache-9m5aar11/wheels/f1/81/49/101a6363839b8d96eb0932724c041725444b34c62f6b946591
Successfully built pyopencl
Installing collected packages: pytools, numpy, pyopencl
  changing mode of /home/dietpi/.local/pipx/venvs/jupyterlab4/bin/f2py to 755
Successfully installed numpy-1.26.4 pyopencl-2024.1 pytools-2024.1.1

> pip install pyopencl
Collecting pyopencl
  Using cached https://files.pythonhosted.org/packages/1b/0e/f49c0507610aae0bc2aba6ad1e79f87992d9e74e6ea55af23e436075502e/pyopencl-2019.1.tar.gz
Requirement already satisfied: numpy in c:\python37\lib\site-packages (from pyopencl) (1.16.4)
Requirement already satisfied: pytools>=2017.6 in c:\python37\lib\site-packages (from pyopencl) (2019.1.1)
Requirement already satisfied: decorator>=3.2.0 in c:\python37\lib\site-packages (from pyopencl) (4.4.0)
Requirement already satisfied: appdirs>=1.4.0 in c:\python37\lib\site-packages (from pyopencl) (1.4.3)
Requirement already satisfied: six>=1.9.0 in c:\python37\lib\site-packages (from pyopencl) (1.12.0)
Installing collected packages: pyopencl
  Running setup.py install for pyopencl ... error
    ERROR: Complete output from command 'c:\python37\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-dtgmmbt_\\pyopencl\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\tomoyan\AppData\Local\Temp\pip-record-ok7vcln_\install-record.txt' --single-version-externally-managed --compile:
    ERROR: ---------------------------------------------------------------------------
    Pybind11 is not installed.
    ---------------------------------------------------------------------------
    Very likely, the build process after this message will fail.

    Simply press Ctrl+C and type
    python -m pip install pybind11
    to fix this. If you don't, the build will continue
    in a few seconds.

    [1] https://pybind11.readthedocs.io/en/stable/
    ---------------------------------------------------------------------------
    Continuing in 1 seconds...
    ---------------------------------------------------------------------------
    Mako is not installed.
    ---------------------------------------------------------------------------
    That is not a problem, as most of PyOpenCL will be just fine
    without it. Some higher-level parts of pyopencl (such as
    pyopencl.reduction) will not function without the templating engine
    Mako [1] being installed. If you would like this functionality to
    work, you might want to install Mako after you finish
    installing PyOpenCL.

    Simply type
    python -m pip install mako
    either now or after the installation completes to fix this.

    [1] http://www.makotemplates.org/
    ---------------------------------------------------------------------------
    Hit Ctrl-C now if you'd like to think about the situation.
    ---------------------------------------------------------------------------
    Continuing in 1 seconds...
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.7
    creating build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\algorithm.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\array.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\bitonic_sort.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\bitonic_sort_templates.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\cache.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\capture_call.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\clmath.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\clrandom.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\cltypes.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\elementwise.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\invoker.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\ipython_ext.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\reduction.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\scan.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\tools.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\version.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\_buffers.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\_cluda.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\_mymako.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\__init__.py -> build\lib.win-amd64-3.7\pyopencl
    creating build\lib.win-amd64-3.7\pyopencl\characterize
    copying pyopencl\characterize\performance.py -> build\lib.win-amd64-3.7\pyopencl\characterize
    copying pyopencl\characterize\__init__.py -> build\lib.win-amd64-3.7\pyopencl\characterize
    creating build\lib.win-amd64-3.7\pyopencl\compyte
    copying pyopencl\compyte\array.py -> build\lib.win-amd64-3.7\pyopencl\compyte
    copying pyopencl\compyte\dtypes.py -> build\lib.win-amd64-3.7\pyopencl\compyte
    copying pyopencl\compyte\__init__.py -> build\lib.win-amd64-3.7\pyopencl\compyte
    creating build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\gen_elemwise.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\gen_reduction.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\setup_opencl.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\test_gpu_elemwise.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\test_gpu_ndarray.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\__init__.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    running egg_info
    writing pyopencl.egg-info\PKG-INFO
    writing dependency_links to pyopencl.egg-info\dependency_links.txt
    writing requirements to pyopencl.egg-info\requires.txt
    writing top-level names to pyopencl.egg-info\top_level.txt
    reading manifest file 'pyopencl.egg-info\SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching '*.h'
    warning: no files found matching 'doc\_static\*.css'
    warning: no files found matching 'doc\_templates\*.html'
    warning: no files found matching '*.py.in'
    writing manifest file 'pyopencl.egg-info\SOURCES.txt'
    creating build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-airy.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-j-complex.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-j.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-y.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-complex.h -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-eval-tbl.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-hankel-complex.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-ranluxcl.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    creating build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\array.h -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\openclfeatures.h -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\philox.cl -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\threefry.cl -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    running build_ext
    building 'pyopencl._cl' extension
    creating build\temp.win-amd64-3.7
    creating build\temp.win-amd64-3.7\Release
    creating build\temp.win-amd64-3.7\Release\src
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -Ic:\python37\Include -IC:\Users\tomoyan\AppData\Roaming\Python\Python37\Include -Ic:\python37\lib\site-packages\numpy\core\include -Ic:\python37\include -Ic:\python37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/wrap_constants.cpp /Fobuild\temp.win-amd64-3.7\Release\src/wrap_constants.obj -fvisibility=hidden /EHsc /DVERSION_INFO=\"2019.1\"
    cl : コマンド ライン warning D9002 : 不明なオプション '-fvisibility=hidden' を無視します。
    wrap_constants.cpp
    C:\Users\tomoyan\AppData\Local\Temp\pip-install-dtgmmbt_\pyopencl\src\wrap_cl.hpp(57): fatal error C1083: include ファイルを開けません。'CL/cl.h':No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command "'c:\python37\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-dtgmmbt_\\pyopencl\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\tomoyan\AppData\Local\Temp\pip-record-ok7vcln_\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\tomoyan\AppData\Local\Temp\pip-install-dtgmmbt_\pyopencl\

Pybind11, Mako をインストールしてから PyOpenCL をインストールする。

> pip install pybind11 Mako
Collecting pybind11
  Downloading https://files.pythonhosted.org/packages/5d/85/c7a8dffda52ce25a8bcfe9a28b6861bdd52da59ae001fdd4173e054b7d9b/pybind11-2.3.0-py2.py3-none-any.whl (147kB)
     |████████████████████████████████| 153kB 1.3MB/s
Collecting Mako
  Downloading https://files.pythonhosted.org/packages/1b/a5/023aba3d69aacef6bfc13797bdc3dd03c6fb4ae2dcd2fde7dffc37233924/Mako-1.0.14.tar.gz (462kB)
     |████████████████████████████████| 471kB 3.3MB/s
Collecting MarkupSafe>=0.9.2 (from Mako)
  Downloading https://files.pythonhosted.org/packages/65/c6/2399700d236d1dd681af8aebff1725558cddfd6e43d7a5184a675f4711f5/MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl
Installing collected packages: pybind11, MarkupSafe, Mako
  Running setup.py install for Mako ... done
Successfully installed Mako-1.0.14 MarkupSafe-1.1.1 pybind11-2.3.0
> pip install pyopencl
Collecting pyopencl
  Using cached pyopencl-2020.2.1.tar.gz (352 kB)
Requirement already satisfied: numpy in c:\users\tomoyan\py38_opencl\lib\site-packages (from pyopencl) (1.19.1)
Requirement already satisfied: pytools>=2017.6 in c:\users\tomoyan\py38_opencl\lib\site-packages (from pyopencl) (2020.4)
Requirement already satisfied: decorator>=3.2.0 in c:\users\tomoyan\py38_opencl\lib\site-packages (from pyopencl) (4.4.2)
Requirement already satisfied: appdirs>=1.4.0 in c:\users\tomoyan\py38_opencl\lib\site-packages (from pyopencl) (1.4.4)
Requirement already satisfied: six>=1.9.0 in c:\users\tomoyan\py38_opencl\lib\site-packages (from pyopencl) (1.15.0)
Using legacy setup.py install for pyopencl, since package 'wheel' is not installed.
Installing collected packages: pyopencl
    Running setup.py install for pyopencl ... error
    ERROR: Command errored out with exit status 1:
     command: 'c:\users\tomoyan\py38_opencl\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-kysbgjhb\\pyopencl\\setup.py'"'"'; __file__='"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-kysbgjhb\\pyopencl\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\tomoyan\AppData\Local\Temp\pip-record-u_d5qgvn\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\tomoyan\py38_opencl\include\site\python3.8\pyopencl'
         cwd: C:\Users\tomoyan\AppData\Local\Temp\pip-install-kysbgjhb\pyopencl\
    Complete output (70 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.8
    creating build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\algorithm.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\array.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\bitonic_sort.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\bitonic_sort_templates.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\cache.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\capture_call.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\clmath.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\clrandom.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\cltypes.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\elementwise.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\invoker.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\ipython_ext.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\reduction.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\scan.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\tools.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\version.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\_buffers.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\_cluda.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\_mymako.py -> build\lib.win-amd64-3.8\pyopencl
    copying pyopencl\__init__.py -> build\lib.win-amd64-3.8\pyopencl
    creating build\lib.win-amd64-3.8\pyopencl\characterize
    copying pyopencl\characterize\performance.py -> build\lib.win-amd64-3.8\pyopencl\characterize
    copying pyopencl\characterize\__init__.py -> build\lib.win-amd64-3.8\pyopencl\characterize
    creating build\lib.win-amd64-3.8\pyopencl\compyte
    copying pyopencl\compyte\array.py -> build\lib.win-amd64-3.8\pyopencl\compyte
    copying pyopencl\compyte\dtypes.py -> build\lib.win-amd64-3.8\pyopencl\compyte
    copying pyopencl\compyte\__init__.py -> build\lib.win-amd64-3.8\pyopencl\compyte
    creating build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\gen_elemwise.py -> build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\gen_reduction.py -> build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\setup_opencl.py -> build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\test_gpu_elemwise.py -> build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\test_gpu_ndarray.py -> build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\__init__.py -> build\lib.win-amd64-3.8\pyopencl\compyte\ndarray
    running egg_info
    writing pyopencl.egg-info\PKG-INFO
    writing dependency_links to pyopencl.egg-info\dependency_links.txt
    writing requirements to pyopencl.egg-info\requires.txt
    writing top-level names to pyopencl.egg-info\top_level.txt
    reading manifest file 'pyopencl.egg-info\SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching '*.h'
    warning: no files found matching 'doc\_static\*.css'
    warning: no files found matching 'doc\_templates\*.html'
    warning: no files found matching '*.py.in'
    warning: no files found matching 'pyproject.toml'
    writing manifest file 'pyopencl.egg-info\SOURCES.txt'
    creating build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-airy.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-j-complex.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-j.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-y.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-complex.h -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-eval-tbl.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-hankel-complex.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    copying pyopencl\cl\pyopencl-ranluxcl.cl -> build\lib.win-amd64-3.8\pyopencl\cl
    creating build\lib.win-amd64-3.8\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\array.h -> build\lib.win-amd64-3.8\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\openclfeatures.h -> build\lib.win-amd64-3.8\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\philox.cl -> build\lib.win-amd64-3.8\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\threefry.cl -> build\lib.win-amd64-3.8\pyopencl\cl\pyopencl-random123
    running build_ext
    building 'pyopencl._cl' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\tomoyan\py38_opencl\scripts\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-kysbgjhb\\pyopencl\\setup.py'"'"'; __file__='"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-kysbgjhb\\pyopencl\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\tomoyan\AppData\Local\Temp\pip-record-u_d5qgvn\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\tomoyan\py38_opencl\include\site\python3.8\pyopencl' Check the logs for full command output.

手軽に済ませたい場合は Build Tools for Visual Studio をインストールする。

> pip install pyopencl
Collecting pyopencl
  Using cached https://files.pythonhosted.org/packages/1b/0e/f49c0507610aae0bc2aba6ad1e79f87992d9e74e6ea55af23e436075502e/pyopencl-2019.1.tar.gz
Requirement already satisfied: numpy in c:\python37\lib\site-packages (from pyopencl) (1.16.4)
Requirement already satisfied: pytools>=2017.6 in c:\python37\lib\site-packages (from pyopencl) (2019.1.1)
Requirement already satisfied: decorator>=3.2.0 in c:\python37\lib\site-packages (from pyopencl) (4.4.0)
Requirement already satisfied: appdirs>=1.4.0 in c:\python37\lib\site-packages (from pyopencl) (1.4.3)
Requirement already satisfied: six>=1.9.0 in c:\python37\lib\site-packages (from pyopencl) (1.12.0)
Installing collected packages: pyopencl
  Running setup.py install for pyopencl ... error
    ERROR: Complete output from command 'c:\python37\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-wwvlcaj3\\pyopencl\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\tomoyan\AppData\Local\Temp\pip-record-ne3hm7p_\install-record.txt' --single-version-externally-managed --compile:
    ERROR: running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.7
    creating build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\algorithm.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\array.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\bitonic_sort.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\bitonic_sort_templates.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\cache.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\capture_call.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\clmath.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\clrandom.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\cltypes.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\elementwise.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\invoker.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\ipython_ext.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\reduction.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\scan.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\tools.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\version.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\_buffers.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\_cluda.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\_mymako.py -> build\lib.win-amd64-3.7\pyopencl
    copying pyopencl\__init__.py -> build\lib.win-amd64-3.7\pyopencl
    creating build\lib.win-amd64-3.7\pyopencl\characterize
    copying pyopencl\characterize\performance.py -> build\lib.win-amd64-3.7\pyopencl\characterize
    copying pyopencl\characterize\__init__.py -> build\lib.win-amd64-3.7\pyopencl\characterize
    creating build\lib.win-amd64-3.7\pyopencl\compyte
    copying pyopencl\compyte\array.py -> build\lib.win-amd64-3.7\pyopencl\compyte
    copying pyopencl\compyte\dtypes.py -> build\lib.win-amd64-3.7\pyopencl\compyte
    copying pyopencl\compyte\__init__.py -> build\lib.win-amd64-3.7\pyopencl\compyte
    creating build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\gen_elemwise.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\gen_reduction.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\setup_opencl.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\test_gpu_elemwise.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\test_gpu_ndarray.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    copying pyopencl\compyte\ndarray\__init__.py -> build\lib.win-amd64-3.7\pyopencl\compyte\ndarray
    running egg_info
    writing pyopencl.egg-info\PKG-INFO
    writing dependency_links to pyopencl.egg-info\dependency_links.txt
    writing requirements to pyopencl.egg-info\requires.txt
    writing top-level names to pyopencl.egg-info\top_level.txt
    reading manifest file 'pyopencl.egg-info\SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching '*.h'
    warning: no files found matching 'doc\_static\*.css'
    warning: no files found matching 'doc\_templates\*.html'
    warning: no files found matching '*.py.in'
    writing manifest file 'pyopencl.egg-info\SOURCES.txt'
    creating build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-airy.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-j-complex.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-j.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-bessel-y.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-complex.h -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-eval-tbl.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-hankel-complex.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    copying pyopencl\cl\pyopencl-ranluxcl.cl -> build\lib.win-amd64-3.7\pyopencl\cl
    creating build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\array.h -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\openclfeatures.h -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\philox.cl -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    copying pyopencl\cl\pyopencl-random123\threefry.cl -> build\lib.win-amd64-3.7\pyopencl\cl\pyopencl-random123
    running build_ext
    building 'pyopencl._cl' extension
    creating build\temp.win-amd64-3.7
    creating build\temp.win-amd64-3.7\Release
    creating build\temp.win-amd64-3.7\Release\src
    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -DPYGPU_PACKAGE=pyopencl -DPYGPU_PYOPENCL=1 -Ipybind11/include -Ic:\python37\Include -IC:\Users\tomoyan\AppData\Roaming\Python\Python37\Include -Ic:\python37\lib\site-packages\numpy\core\include -Ic:\python37\include -Ic:\python37\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /EHsc /Tpsrc/wrap_constants.cpp /Fobuild\temp.win-amd64-3.7\Release\src/wrap_constants.obj -fvisibility=hidden /EHsc /DVERSION_INFO=\"2019.1\"
    cl : コマンド ライン warning D9002 : 不明なオプション '-fvisibility=hidden' を無視します。
    wrap_constants.cpp
    C:\Users\tomoyan\AppData\Local\Temp\pip-install-wwvlcaj3\pyopencl\src\wrap_cl.hpp(57): fatal error C1083: include ファイルを開けません。'CL/cl.h':No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command "'c:\python37\python.exe' -u -c 'import setuptools, tokenize;__file__='"'"'C:\\Users\\tomoyan\\AppData\\Local\\Temp\\pip-install-wwvlcaj3\\pyopencl\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\tomoyan\AppData\Local\Temp\pip-record-ne3hm7p_\install-record.txt' --single-version-externally-managed --compile" failed with error code 1 in C:\Users\tomoyan\AppData\Local\Temp\pip-install-wwvlcaj3\pyopencl\

OpenCL 開発環境構築 を行ってから PyOpenCL をインストールする。

  • python/pyopencl.txt
  • 最終更新: 2024/04/23 13:48
  • by ともやん