@Alex-Kushleyev
OMG IT WORKS!!
I was able to extract all these libraries from the host and directly install them inside the docker, and now the pcol-opencl-icd installation isn't needed.
This is really important for us, since it allows us to build external dependencies that rely on OpenCL in our pipeline directly without bind mounts (outside the host environment).
Really, really appreciate all your help!
FROM arm64v8/ubuntu:22.04
# Install necessary dependencies
RUN apt-get update && \
apt-get install -y \
cmake \
build-essential \
libglib2.0-0
# Copy Adreno GPU dependencies
# - libcutils0_0-r1_arm64.deb
# - libsync_1.0-r1_arm64.deb
# - qti-libion_0-r1_arm64.deb
# - liblog0_1.0-r1_arm64.deb
# - qti-adreno_1.0-r0_arm64.deb
COPY dep /root/dep
# Create required directory for qti-adreno install
RUN mkdir /usr/include/KHR && dpkg -i /root/dep/*.deb
# Copy and build test script
COPY ./hellocl /root/hellocl
RUN cd /root/hellocl && mkdir build && cd build && cmake .. && make
CMD ["bash"]
voxl2:~/opencl$ docker run -it --rm --privileged opencl:latest ./root/hellocl/build/hellocl
Platform Information:
Platform Name: QUALCOMM Snapdragon(TM)
Platform Vendor: QUALCOMM
Platform Version: OpenCL 2.0 QUALCOMM build: commit # changeid # Date: 11/10/21 Wed Local Branch: Remote Branch:
Platform Profile: FULL_PROFILE
Platform Extensions:
------------------------------------
Device Information:
Device Name: QUALCOMM Adreno(TM)
Device Vendor: QUALCOMM
Driver Version: OpenCL 2.0 QUALCOMM build: commit # changeid # Date: 11/10/21 Wed Local Branch: Remote Branch: Compiler E031.37.12.01
Device Version: OpenCL 2.0 Adreno(TM) 650
Device OpenCL C Version: OpenCL C 2.0 Adreno(TM) 650
Device Max Compute Units: 3
This should be three: 3