# Kernel Boot Params ## Updating Grub To select the `AMDGPU` driver / module. https://askubuntu.com/a/1314983 I'll add the following flags to the appropriate line in `/etc/default/grub` ``` GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1 amdgpu.dc=1 amdgpu.dpm=1 amdgpu.modeset=1" ``` Then run ``` sudo update-grub ``` and reboot, selecting Ubuntu 20.04 per this branch of the debugging tree. ## Rebooting After rebooting, `OpenCL` detects the GPU! But it hangs and does not return from the call ``` sudo clinfo -l ``` The call without the `sudo` yields just the CPU and `Number of devices: 0` as before. Here's the glorious output: ``` $ sudo clinfo -l [sudo] password for arcologos: Number of platforms: 1 Platform Profile: FULL_PROFILE Platform Version: OpenCL 2.1 AMD-APP (3558.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: 1 Device Type: CL_DEVICE_TYPE_GPU Vendor ID: 1002h Board name: AMD Radeon (TM) R9 390 Series Device Topology: PCI[ B#3, D#0, F#0 ] Max compute units: 40 Max work items dimensions: 3 Max work items[0]: 1024 Max work items[1]: 1024 Max work items[2]: 1024 Max work group size: 256 Preferred vector width char: 4 Preferred vector width short: 2 Preferred vector width int: 1 Preferred vector width long: 1 Preferred vector width float: 1 Preferred vector width double: 1 Native vector width char: 4 Native vector width short: 2 Native vector width int: 1 Native vector width long: 1 Native vector width float: 1 Native vector width double: 1 Max clock frequency: 1005Mhz Address bits: 64 Max memory allocation: 7301444400 Image support: Yes Max number of images read arguments: 128 Max number of images write arguments: 8 Max image 2D width: 16384 Max image 2D height: 16384 Max image 3D width: 16384 Max image 3D height: 16384 Max image 3D depth: 8192 Max samplers within kernel: 26545 Max size of kernel argument: 1024 Alignment (bits) of base address: 1024 Minimum alignment (bytes) for any datatype: 128 Single precision floating point capability Denorms: No Quiet NaNs: Yes Round to nearest even: Yes Round to zero: Yes Round to +ve and infinity: Yes IEEE754-2008 fused multiply-add: Yes Cache type: Read/Write Cache line size: 64 Cache size: 16384 Global memory size: 8589934592 Constant buffer size: 7301444400 Max number of constant args: 8 Local memory type: Scratchpad Local memory size: 65536 Max pipe arguments: 16 Max pipe active reservations: 16 Max pipe packet size: 3006477104 Max global variable size: 7301444400 Max global variable preferred total size: 8589934592 Max read/write image args: 64 Max on device events: 1024 Queue on device max size: 8388608 Max on device queues: 1 Queue on device preferred size: 262144 SVM capabilities: Coarse grain buffer: Yes Fine grain buffer: Yes Fine grain system: No Atomics: No Preferred platform atomic alignment: 0 Preferred global atomic alignment: 0 Preferred local atomic alignment: 0 ``` ## Add User to Video Group Per this response https://github.com/RadeonOpenCompute/ROCm/issues/482#issuecomment-410551357 I add the current user to the `video` group. I forget where I first read that this was necessary, but next also is to try the `render` group. ``` sudo usermod -G video -a $USER ```