This is due to the fact that certain features available in the CUDA toolkit and NVIDIA hardware were not yet available in AMD ROCm. Necessary changes to CMake and the Make based build systems were also introduced. According to initial tests, the performance on MI100 was ∼2x slower than on a V100 GPU. This was due to the higher register utilization of kernels on AMD hardware. At this stage, we implemented different kernel versions and profiled them. Based on the register utilization and run times, the most suitable code paths were chosen. The performance of the kernels was systematically studied while varying kernel launch parameters. Based on this study, optimal kernel launch parameters were selected for the AMD version. For BLAS operations and matrix diagonalization, necessary interfaces were written to rocBLAS and rocSolver libraries. Unfortunately, as of ROCm/5.3.0, the symmetric matrix diagonalization routines of rocSolver were not optimized. Due to this reason, the DSYEVD diagonalizer from the Magma library was integrated. For this task, required functions were written and changes were made to the QUICK build system.