Ubuntu 26.04 AMD GPU compute

Ubuntu release

lsb_release -a 2>/dev/null

returns

Distributor ID:	Ubuntu
Description:	Ubuntu 26.04 LTS
Release:	26.04
Codename:	resolute
uname -r

returns

7.0.0-22-generic

GPU setup

The Framework 16 with AMD Ryzen CPU ships with an integrated GPU (iGPU) and a dedicated Neural Processing Unit (NPU). Moreover the AMD RX 7700S provides a dedicated GPU (dGPU) graphics card.

Kernel modules

sudo lsmod |grep -iE 'amd(gpu|xdna)'

returns

amdxdna               172032  0
amd_pmf               131072  1 amdxdna
amdgpu              21549056  55
amdxcp                 12288  1 amdgpu
i2c_algo_bit           16384  1 amdgpu
drm_ttm_helper         20480  2 amdgpu
ttm                   135168  2 amdgpu,drm_ttm_helper
drm_exec               12288  1 amdgpu
drm_panel_backlight_quirks    12288  1 amdgpu
gpu_sched              69632  2 amdxdna,amdgpu
drm_suballoc_helper    24576  1 amdgpu
drm_buddy              28672  1 amdgpu
drm_display_helper    303104  1 amdgpu
video                  77824  1 amdgpu
cec                   106496  2 drm_display_helper,amdgpu

More details on the kernel modules utilized:

modinfo amdgpu | grep -E "version:|description:|vermagic:|filename:"

returns

filename:       /lib/modules/7.0.0-22-generic/kernel/drivers/gpu/drm/amd/amdgpu/amdgpu.ko.zst
description:    AMD GPU
srcversion:     3A899DD7C85BDF64918FEF2
vermagic:       7.0.0-22-generic SMP preempt mod_unload modversions

and

modinfo amdxdna | grep -E "version:|description:|vermagic:|filename:"

returns

filename:       /lib/modules/7.0.0-22-generic/kernel/drivers/accel/amdxdna/amdxdna.ko.zst
description:    amdxdna driver
srcversion:     3873C4BB9348F32F5C9E515
vermagic:       7.0.0-22-generic SMP preempt mod_unload modversions 

AMD base driver

amd-smi
+------------------------------------------------------------------------------+
| AMD-SMI 26.2.1+unknown       amdgpu version: 7.0.0-22 ROCm version: 7.2.1    |
| VBIOS version: 00079185                                                      |
| Platform: Linux Baremetal                                                    |
|-------------------------------------+----------------------------------------|
| BDF                        GPU-Name | Mem-Uti   Temp   UEC       Power-Usage |
| GPU  HIP-ID  OAM-ID  Partition-Mode | GFX-Uti    Fan               Mem-Usage |
|=====================================+========================================|
| 0000:c4:00.0    AMD Radeon RX 7700S | 0 %      39 °C   0             2/100 W |
|   0       0     N/A             N/A | 0 %     29.8 %              26/8176 MB |
|-------------------------------------+----------------------------------------|
| 0000:c5:00.0 ...adeon 890M Graphics | N/A        N/A   0                 N/A |
|   1       1     N/A             N/A | N/A        N/A              471/512 MB |
+-------------------------------------+----------------------------------------+
+------------------------------------------------------------------------------+
| Processes:                                                                   |
|  GPU        PID  Process Name          GTT_MEM  VRAM_MEM  MEM_USAGE     CU % |
|==============================================================================|
|  No running processes found                                                  |
+------------------------------------------------------------------------------+

AMD ROCm framework

rocminfo | grep -E "Name:|Compute Unit|Max Clock|Memory Size|Agent"
HSA Agents               
Agent 1                  
  Name:                    AMD Ryzen AI 9 HX 370 w/ Radeon 890M
  Marketing Name:          AMD Ryzen AI 9 HX 370 w/ Radeon 890M
  Vendor Name:             CPU                                
  Max Clock Freq. (MHz):   2605                               
  Compute Unit:            24                                 
Agent 2                  
  Name:                    gfx1100                            
  Marketing Name:          AMD Radeon RX 7700S                
  Vendor Name:             AMD                                
  Max Clock Freq. (MHz):   2208                               
  Compute Unit:            32                                 
      Name:                    amdgcn-amd-amdhsa--gfx1100         
      Name:                    amdgcn-amd-amdhsa--gfx11-generic   
Agent 3                  
  Name:                    gfx1100                            
  Marketing Name:          AMD Radeon 890M Graphics           
  Vendor Name:             AMD                                
  Max Clock Freq. (MHz):   2900                               
  Compute Unit:            16                                 
      Name:                    amdgcn-amd-amdhsa--gfx1100         
      Name:                    amdgcn-amd-amdhsa--gfx11-generic   
Agent 4                  
  Name:                    aie2                               
  Marketing Name:          AIE-ML                             
  Vendor Name:             AMD                                
  Max Clock Freq. (MHz):   0                                  
  Compute Unit:            0   

OpenCL framework

grep -H '' /etc/OpenCL/vendors/* 

returns

/etc/OpenCL/vendors/amdocl64.icd:libamdocl64.so
/etc/OpenCL/vendors/amdxrt.icd:/usr/./lib/x86_64-linux-gnu/libxilinxopencl.so
/etc/OpenCL/vendors/rusticl.icd:libRusticlOpenCL.so.1

and

sudo clinfo | grep -E "Number of devices|Number of platforms|Device Name|Device Type|Platform Name|Max compute units|Max clock|Global memory size"

returns

Number of platforms                               2
  Platform Name                                   AMD Accelerated Parallel Processing
  Platform Name                                   Xilinx
  Platform Name                                   AMD Accelerated Parallel Processing
Number of devices                                 2
  Device Name                                     gfx1102
  Device Type                                     GPU
  Max compute units                               16
  Max clock frequency                             2208MHz
  Global memory size                              8573157376 (7.984GiB)
  Device Name                                     gfx1150
  Device Type                                     GPU
  Max compute units                               8
  Max clock frequency                             2900MHz
  Global memory size                              32794570752 (30.54GiB)
  Platform Name                                   Xilinx
Number of devices                                 1
XRT build version: 2.21.75
PID: 370347
UID: 0
[Sat Jun 13 08:36:36 2026 GMT]
HOST:   Device Name                                     <printDeviceInfo:0: get CL_DEVICE_NAME size : error -6>
  Device Type                                     Accelerator
  Max compute units                               0
  Max clock frequency                             0MHz
cma-framework
EXE: /usr/bin/clinfo
[XRT] ERROR: get_device_info: Operation not supported
[XRT] ERROR: clGetDeviceInfo: invalid param_name
  Global memory size                              0
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx1102
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx1102
    Device Name                                   gfx1150
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx1102
    Device Name                                   gfx1150

LLM inference through Lemonade

sudo apt install lemonade-{server,desktop}  
lemonade --version && lemond --version

yields

lemonade version 10.7.0
lemond version 10.7.0

and successful integration and usage of the NPU with tools like https://aider.chat running

OPENAI_API_BASE='http://localhost:13305/v1' \
OPENAI_API_KEY='' \
aider --model openai/llama3.2-1b-FLM

Scientific Computing with i/dGPUs in Python

Utilizing a micromamba environment and pip installs:

 micromamba list -n framework | grep -iE 'torch|cupy'

returns

  cupy-rocm-7-0              14.1.1          pypi_0                pypi       
  torch                      2.10.0+rocm7.0  pypi_0                pypi       
  torchaudio                 2.10.0+rocm7.0  pypi_0                pypi       
  torchvision                0.25.0+rocm7.0  pypi_0                pypi

installed through

pip install torch{,vision,audio} --index-url https://download.pytorch.org/whl/rocm7.0
pip install cupy-rocm-7-0 

Both GPU’s are accessible:

# PyTorch
import torch
torch.tensor([.0]).to('cuda:0').device
torch.tensor([1.]).to('cuda:1').device

# CuPy
import cupy
with cupy.cuda.Device(0):
    cupy.array([.0]).device
with cupy.cuda.Device(1):
    cupy.array([1.]).device