This document discusses the optimization of sparse matrix-vector multiplication (SpMV) on GPUs, highlighting the challenges posed by irregular memory accesses and load balancing among threads. It introduces a methodology to analyze the nature of sparse matrices and select appropriate data structures, resulting in performance improvements of up to 80% in certain cases and 25% on average compared to previous methods. Additionally, the proposed SpMV technique is applied to the conjugate gradient method, yielding an average 20% improvement in performance.