SCALE by Spectral Compute#
What is SCALE?#
SCALE is a GPGPU programming toolkit that can natively compile CUDA applications for AMD GPUs.
SCALE does not require the CUDA program or its build system to be modified.
Support for more GPU vendors and CUDA APIs is in development.
How do I use SCALE?#
- Install SCALE.
- Activate SCALE, eg.
. /opt/SCALE/scaleenv gfx1100 - Compile your application, following the same steps you would use for NVIDIA CUDA.
What projects have been tested?#
We validate SCALE by compiling open-source CUDA projects and running their tests. The list of currently-tested projects and their compatibility status can be found here
Which GPUs are supported?#
The following GPU targets are supported:
AMD#
Full technical specifications available here.
Enterprise#
| Name | Architecture | LLVM target |
|---|---|---|
| MI350X / MI355X | CDNA 4 | gfx950 |
| MI300A / MI300X / MI325X | CDNA 3 | gfx942 |
| MI210 / MI250 / MI250X | CDNA 2 | gfx90a |
| MI100 | CDNA 1 | gfx908 |
| MI50 / MI60 | GCN 5.1 | gfx906 |
| MI25 | GCN 5.0 | gfx900 |
Consumer#
| Name | Architecture | LLVM target |
|---|---|---|
| Radeon AI PRO R9600D / R9700 | RDNA 4 | gfx1201 |
| Radeon RX 9070 | RDNA 4 | gfx1201 |
| Radeon RX 9060 | RDNA 4 | gfx1200 |
| Ryzen AI Max+ PRO 395 | RDNA 3.5 | gfx1151 |
| Radeon RX 7600 | RDNA 3 | gfx1102 |
| Radeon PRO v710 / W7700 | RDNA 3 | gfx1101 |
| Radeon RX 7700 / 7800 | RDNA 3 | gfx1101 |
| Radeon PRO W7800 / W7900 | RDNA 3 | gfx1100 |
| Radeon RX W7900 XT / XTX | RDNA 3 | gfx1100 |
| Radeon PRO v620 / W6800 | RDNA 2 | gfx1030 |
| Radeon RX 6800 / 6900 / 6950 | RDNA 2 | gfx1030 |
| Radeon Pro W5700 | RDNA 1 | gfx1010 |
Contact us if you want us to expedite support for a particular AMD GPU architecture.
What are the components of SCALE?#
SCALE consists of:
- An
nvcc-compatible compiler capable of compiling nvcc-dialect CUDA for AMD GPUs, including PTX asm. - An implementation of the CUDA runtime, driver and math APIs for AMD GPUs.
- Open-source wrapper libraries providing the "CUDA-X" APIs by delegating to the
corresponding ROCm libraries.
This is how libraries such as
cuBLASandcuSOLVERare handled.
What are the differences between SCALE and other solutions?#
Instead of providing a new way to write GPGPU software, SCALE allows programs written using the widely-popular CUDA language to be directly compiled for AMD GPUs.
SCALE aims to be fully compatible with NVIDIA CUDA. We believe that users should not have to maintain multiple codebases or compromise on performance to support multiple GPU vendors.
SCALE's language is a superset of NVIDIA CUDA, offering some opt-in
language extensions
that can make writing GPU code easier and more efficient for users who wish
to move away from nvcc.
SCALE is a work in progress. If there is a missing API that is blocking your attempt to use SCALE, please contact us so we can prioritise its development.
Contact us#
There are multiple ways to get in touch with us:
- Join our Discord
- Send us an e-mail at [email protected]