This study compares the performance of four matrix multiplication methods, namely the standard, transpose, Winograd, and Strassen methods, executed on CPU, where two of them, namely the standard and transpose methods, are also executed on GPU. Performance observations were made on the multiplication of two square matrices of size 128 (small), 256, 512 (medium), and 1024 (large). Performance refers to the execution time under three defined scenarios. All methods were implemented into the C++ code and run with the C++ and CUDA compilers. The results from all scenarios show that on CPU, the Winograd method provides the best performance for small to medium sized matrices, while the Strassen method is the fastest method for large size. The transpose method on CPU shows a performance improvement at large size due to improved memory locality. On GPU, the transpose method provides a significant speedup on small to medium sized matrices due to coalescent memory access, while the standard GPU becomes more competitive at large size. Overall, GPUs consistently outperform CPUs for medium and large matrix sizes.
Copyrights © 2026