The code has been tested on Kaveri and Carrizo APUs. Implemented sytem calls include:
- sys_read
- sys_write
- sys_pread
- sys_pwrite
- sys_lseek
- sys_open
- sys_close
- sys_mmap
- sys_munmap
- sys_madvise
- sys_recvfrom
- sys_sendto
- sys_getrusage
The orignal design can be found at: https://arxiv.org/abs/1705.06965
- dGPU support for Fiji
- device and host memory support
- multiple GPU support
- host memory allocations are shared between GPUs
- On consumer grade products (Nano, Fury, Fury X), thermal control is not working correctly. As a workaround, fans are hardcoded to 100% to prevent overheating.
The kernel image is built from a source tree based on the 4.9 upstream release plus:
- Features in the HSA kernel driver ("amdkfd") that are not yet upstreamed to the mainline Linux kernel.
- Changes in the AMDGPU kernel driver ("amdgpu") that may not yet be upstreamed to the mainline Linux kernel.
Please note that the libhsakmt library in this repository is NOT compatible with amdkfd that is distributed as part of the mainline Linux kernel from 3.19 and onward.
This release is intended for use with any hardware configuration that contains only Carrizo APU, or configurations which contain an Intel Haswell or newer CPU plus Fiji dGPUs.
APU motherboards must support run latest BIOS version and have the IOMMU enabled in the BIOS.
The following is a reference hardware configuration that was used for testing purposes:
dGPU Config:
- CPU: Intel i7-4790
- Motherboard: ASUS Z97-PRO
- Memory: G.Skill Ripjaws 4 32GB RAM (4 x 8GB)
- OS: Ubuntu 14.04.03 64-bit edition
- dGPU: ASUS R9 Nano
NOTE: Binary packages are no longer part of this git repository. Please refer to the ROCm project for instructions on configuring the AMD apt/yum package server
The configuration used to build our kernel can be re-created by running:
make rock-rel_defconfig
This config is based on the Ubuntu 14.04 build patches by Canonical.
- Source code used to build the kernel is in this repo. Source code to build libhsakmt is in the ROCT-Thunk-Interface repository
The following lists the different licenses that apply to the different components in this repository:
- the Linux kernel images are covered by the modified GPL license in COPYING
- the firmware image is covered by the license in LICENSE.ucode