title: How to make AMD GPU available by WSL for use with DALL-E Playground AI Sever
body: <p>I'm trying to run and deploy the Dalle Playground on my local machine using an AMD GPU, I'm on Windows 11 with a WSL instance running. </p>
  <p><a href="https://github.com/saharmor/dalle-playground" rel="nofollow noreferrer">Link to Dalle Playground repo</a></p>
  <pre><code>System OS: Windows 11 Pro - Version 21H1 - OS Build 22000.675
  WSL Version: WSL 2 
  WSL Kernel: 5.10.16.3-microsoft-standard-WSL2
  WSL OS: Ubuntu 20.04 LTS
  GPU: AMD Radeon RX 6600 XT
  CPU: AMD Ryzen 5 3600XT (32GB ram)
  </code></pre>
  <p>I have been able to deploy the backend and frontend successfully but it runs off the CPU.</p>
  <p>It gives me this warning:</p>
  <pre><code>    --&gt; Starting DALL-E Server. This might take up to two minutes.
  2022-06-12 01:16:33.012306: I external/org_tensorflow/tensorflow/core/tpu/tpu_initializer_helper.cc:259] Libtpu path is: libtpu.so
  2022-06-12 01:16:37.581440: I external/org_tensorflow/tensorflow/compiler/xla/service/service.cc:174] XLA service 0x5a4e760 initialized for platform Interpreter (this does not guarantee that XLA will be used). Devices:
  2022-06-12 01:16:37.581474: I external/org_tensorflow/tensorflow/compiler/xla/service/service.cc:182]   StreamExecutor device (0): Interpreter, &lt;undefined&gt;
  2022-06-12 01:16:37.587860: I external/org_tensorflow/tensorflow/compiler/xla/pjrt/tfrt_cpu_pjrt_client.cc:176] TfrtCpuClient created.
  2022-06-12 01:16:37.588478: I external/org_tensorflow/tensorflow/stream_executor/tpu/tpu_platform_interface.cc:74] No TPU platform found.
  WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
  </code></pre>
  <p>I have been trying to make my GPU accessible by my WSL instance but I can't work out what I'm doing wrong. For use with GPU I've entered the following command from <a href="https://pytorch.org/get-started/locally/" rel="nofollow noreferrer">pytorch</a>:</p>
  <pre><code>pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm4.5.2
  </code></pre>
  <p>I confirmed that pytorch is installed correctly by running the sample PyTorch code supplied on their <a href="https://pytorch.org/get-started/locally/" rel="nofollow noreferrer">website</a>.</p>
  <p>After doing some digging I realised that the <strong>rock-dkms</strong> package needed to be installed also, so I followed the advice on <a href="https://www.reddit.com/r/linuxquestions/comments/qu8n5d/error_installing_amd_rocm/" rel="nofollow noreferrer">this website</a> and installed it successfully - after a lot of issues.</p>
  <p>When I try to check ROC for my GPU this is what comes up:</p>
  <pre><code>$ /opt/rocm/bin/rocminfo
  ROCk module is NOT loaded, possibly no GPU devices
  
  $ /opt/rocm/opencl/bin/clinfo
  Number of platforms:                             1
    Platform Profile:                              FULL_PROFILE
    Platform Version:                              OpenCL 2.1 AMD-APP (3423.0)
    Platform Name:                                 AMD Accelerated Parallel Processing
    Platform Vendor:                               Advanced Micro Devices, Inc.
    Platform Extensions:                           cl_khr_icd cl_amd_event_callback
  
  
    Platform Name:                                 AMD Accelerated Parallel Processing
  Number of devices:                               0
  </code></pre>
  <p>Based on this response, it seems to be there's definitely some sort of AMD compatible driver available and if you look at the attached photo you can see what shows up when I try to query for the GPU. I don't know at this stage if WSL can see and/or access my GPU or not, as <strong>glxinfo</strong> can identify it but nothing else can. (Even if it gets my VRAM wrong)</p>
  <p>ANY advice would be very helpful, I know this issue may not be project specific but I tried to include as much information about what I am doing as possible for the best chance of figuring this out.</p>
  <p><strong>Installed AMD GPU libs:</strong></p>
  <pre><code>$ sudo apt list|grep -i gpu|grep installed
  
  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
  
  libdrm-amdgpu1/focal-updates,focal-security,now 2.4.107-8ubuntu1~20.04.2 amd64 [installed]
  libosdgpu3.4.0/focal,now 3.4.0-6build1 amd64 [installed,automatic]
  </code></pre>
  <p><strong>Installed ROC packages:</strong></p>
  <pre><code>        $ apt list --installed | grep -i roc
      
      WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
      
      hsa-rocr-dev/Ubuntu,now 1.5.0.50100-36 amd64 [installed,automatic]
      hsa-rocr/Ubuntu,now 1.5.0.50100-36 amd64 [installed,automatic]
      hsakmt-roct-dev/Ubuntu,now 20220128.1.7.50100-36 amd64 [installed,automatic]
      hsakmt-roct/Ubuntu,now 20210520.3.071986.40301-59 amd64 [installed,automatic]
      libopencv-imgproc4.2/focal,now 4.2.0+dfsg-5 amd64 [installed,automatic]
      libpostproc55/focal-updates,focal-security,now 7:4.2.7-0ubuntu0.1 amd64 [installed,automatic]
      libprocps8/focal-updates,now 2:3.3.16-1ubuntu2.3 amd64 [installed,automatic]
      procps/focal-updates,now 2:3.3.16-1ubuntu2.3 amd64 [installed,automatic]
      python3-ptyprocess/focal,now 0.6.0-1ubuntu1 all [installed,automatic]
      rock-dkms-firmware/Ubuntu,now 1:4.3-59 all [installed,automatic]
      rock-dkms/Ubuntu,now 1:4.3-59 all [installed,automatic]
      rocm-clang-ocl/Ubuntu,now 0.5.0.50100-36 amd64 [installed,automatic]
      rocm-cmake/Ubuntu,now 0.7.2.50100-36 amd64 [installed,automatic]
      rocm-core/Ubuntu,now 5.1.0.50100-36 amd64 [installed,automatic]
      rocm-dbgapi/Ubuntu,now 0.64.0.50100-36 amd64 [installed,automatic]
      rocm-debug-agent/Ubuntu,now 2.0.3.50100-36 amd64 [installed,automatic]
      rocm-dev/Ubuntu,now 5.1.0.50100-36 amd64 [installed,automatic]
      rocm-device-libs/Ubuntu,now 1.0.0.50100-36 amd64 [installed,automatic]
      rocm-dkms/Ubuntu,now 5.1.0.50100-36 amd64 [installed]
      rocm-gdb/Ubuntu,now 11.2.50100-36 amd64 [installed,automatic]
      rocm-llvm/Ubuntu,now 14.0.0.22114.50100-36 amd64 [installed,automatic]
      rocm-ocl-icd/Ubuntu,now 2.0.0.50100-36 amd64 [installed,automatic]
      rocm-opencl-dev/Ubuntu,now 2.0.0.50100-36 amd64 [installed,automatic]
      rocm-opencl/Ubuntu,now 2.0.0.50100-36 amd64 [installed,automatic]
      rocm-smi-lib/Ubuntu,now 5.0.0.50100-36 amd64 [installed,automatic]
      rocm-utils/Ubuntu,now 5.1.0.50100-36 amd64 [installed,automatic]
      rocminfo/Ubuntu,now 1.0.0.50100-36 amd64 [installed,automatic]
      rocprofiler-dev/Ubuntu,now 1.0.0.50100-36 amd64 [installed,automatic
  
  ]
  roctracer-dev/Ubuntu,now 1.0.0.50100-36 amd64 [installed,automatic]
  </code></pre>
  <p><a href="https://i.stack.imgur.com/m1eEz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/m1eEz.png" alt="Trying to find GPU" /></a></p>
  <p><strong>EDIT:</strong>
  Just ran the following and got a little more information about the current state of my system.</p>
  <pre><code>$ glxinfo -B
  name of display: :0
  display: :0  screen: 0
  direct rendering: Yes
  Extended renderer info (GLX_MESA_query_renderer):
      Vendor: Microsoft Corporation (0xffffffff)
      Device: D3D12 (AMD Radeon RX 6600 XT) (0xffffffff)
      Version: 22.2.0
      Accelerated: yes
      Video memory: 24485MB
      Unified memory: no
      Preferred profile: core (0x1)
      Max core profile version: 4.2
      Max compat profile version: 4.2
      Max GLES1 profile version: 1.1
      Max GLES[23] profile version: 3.1
  OpenGL vendor string: Microsoft Corporation
  OpenGL renderer string: D3D12 (AMD Radeon RX 6600 XT)
  OpenGL core profile version string: 4.2 (Core Profile) Mesa 22.2.0-devel (git-cbcdcc4 2022-06-11 focal-oibaf-ppa)
  OpenGL core profile shading language version string: 4.20
  OpenGL core profile context flags: (none)
  OpenGL core profile profile mask: core profile
  
  OpenGL version string: 4.2 (Compatibility Profile) Mesa 22.2.0-devel (git-cbcdcc4 2022-06-11 focal-oibaf-ppa)
  OpenGL shading language version string: 4.20
  OpenGL context flags: (none)
  OpenGL profile mask: compatibility profile
  
  OpenGL ES profile version string: OpenGL ES 3.1 Mesa 22.2.0-devel (git-cbcdcc4 2022-06-11 focal-oibaf-ppa)
  OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10
  </code></pre>
  <p>Adding to the confusion even more, glmark2 seems to be able to use my GPU fine, possibly an issue with the dalle program and not WSL?</p>
  <p><a href="https://i.stack.imgur.com/9UduF.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9UduF.png" alt="GLmark2 running successfully despite issues with dalle playground" /></a></p>