Skip to content

Instantly share code, notes, and snippets.

@Hermann-SW
Last active December 18, 2024 15:02
Show Gist options
  • Save Hermann-SW/03c94d216cd4a01229bf266dc35a7404 to your computer and use it in GitHub Desktop.
Save Hermann-SW/03c94d216cd4a01229bf266dc35a7404 to your computer and use it in GitHub Desktop.
"Radeon RX 480" rocm demo script to execute with "docker run" for "rocm/dev-ubuntu-18.04"
#!/bin/bash
set -x
apt-get update 2>&1 > /dev/null
apt-get install -y git 2>&1 > /dev/null
usermod -a -G video root
echo ROC_ENABLE_PRE_VEGA=1 >> /etc/environment
echo HSA_OVERRIDE_GFX_VERSION=8.0.3 >> /etc/environment
cat > /root/doit <<EOF
echo -e "\nNow executing /root/doit"
set -x
groups
/opt/rocm/bin/clinfo | grep "Number"
/opt/rocm/bin/clinfo | grep Board
git clone https://github.com/rsnemmen/OpenCL-examples > /dev/null
cd OpenCL-examples/add_numbers
sed -i "s#\(DDEBUG\)#\1 -I/opt/rocm/include#" Makefile
sed -i "s#\(lOpenCL\)#\1 -L/opt/rocm/lib#" Makefile
make 2>/dev/null
./add_numbers
EOF
# execute created /root/doit script
chmod 755 /root/doit
su - root ./doit
echo -e "\nEnter login shell for further work"
su -l - root
@Hermann-SW
Copy link
Author

hermann@7600x:~$ ls /dev/dri/render*
/dev/dri/renderD128
hermann@7600x:~$

Sample execution:

hermann@7600x:~$ docker run -it -v ./doit:/doit --device /dev/kfd --device /dev/dri/renderD128 rocm/dev-ubuntu-18.04 /doit
+ apt-get update
E: The repository 'https://repo.radeon.com/amdgpu/22.20.3/ubuntu bionic Release' does not have a Release file.
+ apt-get install -y git
debconf: delaying package configuration, since apt-utils is not installed
+ usermod -a -G video root
+ echo ROC_ENABLE_PRE_VEGA=1
+ echo HSA_OVERRIDE_GFX_VERSION=8.0.3
+ cat
+ chmod 755 /root/doit
+ su - root ./doit

Now executing /root/doit
+ groups
root video
+ /opt/rocm/bin/clinfo
+ grep Number
Number of platforms:				 1
Number of devices:				 1
+ /opt/rocm/bin/clinfo
+ grep Board
  Board name:					 AMD Radeon (TM) RX 480 Graphics
+ git clone https://github.com/rsnemmen/OpenCL-examples
Cloning into 'OpenCL-examples'...
remote: Enumerating objects: 577, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 577 (delta 6), reused 15 (delta 4), pack-reused 559 (from 1)
Receiving objects: 100% (577/577), 3.54 MiB | 7.13 MiB/s, done.
Resolving deltas: 100% (215/215), done.
+ cd OpenCL-examples/add_numbers
+ sed -i 's#\(DDEBUG\)#\1 -I/opt/rocm/include#' Makefile
+ sed -i 's#\(lOpenCL\)#\1 -L/opt/rocm/lib#' Makefile
+ make
gcc -std=c99 -Wall -DUNIX -g -DDEBUG -I/opt/rocm/include -m64 -o add_numbers add_numbers.c   -lOpenCL -L/opt/rocm/lib
+ ./add_numbers
Computed sum = 2016.0.
Check passed.
+ echo -e '\nEnter login shell for further work'

Enter login shell for further work
+ su -l - root
root@1f58f7406d62:~# cd OpenCL-examples/add_numbers/
root@1f58f7406d62:~/OpenCL-examples/add_numbers# ./add_numbers
Computed sum = 2016.0.
Check passed.
root@1f58f7406d62:~/OpenCL-examples/add_numbers# 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment