From 2e468f6ffcae814c19293f78eb7a2f2bf4d2129b Mon Sep 17 00:00:00 2001 From: jsandham Date: Tue, 1 Sep 2026 23:14:13 -0400 Subject: [PATCH 1/2] Adding LRB matrix vector multiply algorithm --- clients/testing/test_arguments.h | 5 +- .../tests/test_symmetric_ruiz_scaling.yaml | 2 +- library/include/csr_matrix.h | 14 + library/include/linalg_enums.h | 3 +- .../src/backend/device/cuda/csrmv_kernels.cuh | 372 ++++++++++++- .../src/backend/device/cuda/cuda_csric0.cu | 3 + .../src/backend/device/cuda/cuda_csrilu0.cu | 3 + .../src/backend/device/cuda/cuda_csrtrsv.cu | 3 + .../backend/device/cuda/cuda_matrix_vector.cu | 507 +++++++++++++++--- .../backend/device/cuda/cuda_matrix_vector.h | 9 - .../src/backend/host/host_matrix_vector.cpp | 1 + library/src/csr_matrix.cpp | 88 +-- .../src/descriptors/csrmv_descr_internal.h | 9 + library/src/linalg_math.cpp | 5 +- tools/Benchmark_Metrics_Tools.md | 115 ++++ ..._matrix_vector_product_20260830_145014.png | Bin 0 -> 312043 bytes tools/plot_bandwidth.py | 62 +++ tools/plot_bandwidth_compare.py | 90 ++++ tools/record_test_performance.py | 92 ++++ 19 files changed, 1246 insertions(+), 137 deletions(-) create mode 100644 tools/Benchmark_Metrics_Tools.md create mode 100644 tools/comparison_matrix_vector_product_20260830_145014_vs_matrix_vector_product_20260830_145014.png create mode 100644 tools/plot_bandwidth.py create mode 100644 tools/plot_bandwidth_compare.py create mode 100644 tools/record_test_performance.py diff --git a/clients/testing/test_arguments.h b/clients/testing/test_arguments.h index cbbd599..a2459ec 100644 --- a/clients/testing/test_arguments.h +++ b/clients/testing/test_arguments.h @@ -61,10 +61,7 @@ namespace testing std::string generate_test_name() const { std::string name = group; - if(this->backend != backend::CPU) - { - name += "_" + backend_to_string(this->backend); - } + name += "_" + backend_to_string(this->backend); if(this->uplo != uplo::lower) { name += "_" + uplo_to_string(this->uplo); diff --git a/clients/testing/tests/test_symmetric_ruiz_scaling.yaml b/clients/testing/tests/test_symmetric_ruiz_scaling.yaml index 877723a..1c32e3e 100644 --- a/clients/testing/tests/test_symmetric_ruiz_scaling.yaml +++ b/clients/testing/tests/test_symmetric_ruiz_scaling.yaml @@ -9,7 +9,7 @@ Tests: "matrices/SPD/nos7/nos7.mtx"] max_iters: [30] tol: [1e-6] - backend: [GPU] + backend: [CPU] small: matrix_file: ["matrices/SPD/bcsstm02/bcsstm02.mtx", diff --git a/library/include/csr_matrix.h b/library/include/csr_matrix.h index f732c80..5a19402 100644 --- a/library/include/csr_matrix.h +++ b/library/include/csr_matrix.h @@ -32,6 +32,14 @@ #include "vector.h" +#include "linalg_types.h" + +// struct csrmv_descr; +// struct csrgemm_descr; +// struct csrsv_descr; +// struct csric0_descr; +// struct csrilu0_descr; + /*! \file * \brief csr_matrx.h provides class for CSR sparse matrices */ @@ -95,6 +103,12 @@ namespace linalg /*! \brief Flag indicating if the matrix data is currently on the host (CPU) or device (GPU). */ bool on_host; + csrmv_descr* descr_mv; + csrgemm_descr* descr_gemm; + csrtrsv_descr* descr_sv; + csric0_descr* descr_ic; + csrilu0_descr* descr_ilu; + public: /*! \brief Default constructor. * Initializes an empty CSR matrix with zero dimensions and no non-zero elements. diff --git a/library/include/linalg_enums.h b/library/include/linalg_enums.h index 1904e6c..9a33e1e 100644 --- a/library/include/linalg_enums.h +++ b/library/include/linalg_enums.h @@ -65,7 +65,8 @@ namespace linalg default_algorithm, /*!< Default algorithm */ merge_path, rowsplit, - nnzsplit + nnzsplit, + lrb }; /*! \brief Enumeration for CSR matrix-matrix addition algorithms. diff --git a/library/src/backend/device/cuda/csrmv_kernels.cuh b/library/src/backend/device/cuda/csrmv_kernels.cuh index 1d86a75..478c6c8 100644 --- a/library/src/backend/device/cuda/csrmv_kernels.cuh +++ b/library/src/backend/device/cuda/csrmv_kernels.cuh @@ -30,16 +30,16 @@ #include "common.cuh" template -__global__ void csrmv_vector_kernel(int m, - int n, - int nnz, - const T alpha, - const int* __restrict__ csr_row_ptr, - const int* __restrict__ csr_col_ind, - const T* __restrict__ csr_val, - const T* __restrict__ x, - const T beta, - T* __restrict__ y) +__global__ void csrmv_row_split_kernel(int m, + int n, + int nnz, + const T alpha, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ csr_col_ind, + const T* __restrict__ csr_val, + const T* __restrict__ x, + const T beta, + T* __restrict__ y) { const int tid = threadIdx.x; const int bid = blockIdx.x; @@ -103,16 +103,16 @@ __device__ inline int } template -__global__ void csrmv_stream_kernel(int m, - int n, - int nnz, - const T alpha, - const int* __restrict__ csr_row_ptr, - const int* __restrict__ csr_col_ind, - const T* __restrict__ csr_val, - const T* __restrict__ x, - const T beta, - T* __restrict__ y) +__global__ void csrmv_nnz_split_kernel(int m, + int n, + int nnz, + const T alpha, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ csr_col_ind, + const T* __restrict__ csr_val, + const T* __restrict__ x, + const T beta, + T* __restrict__ y) { const int tid = threadIdx.x; const int bid = blockIdx.x; @@ -232,4 +232,336 @@ __global__ void csrmv_stream_kernel(int m, } } + +__device__ int ilog2(unsigned int x) { + // 31 minus leading zeros equals floor(log2(x)) for x > 0 + return 31 - __clz(x); +} + +__device__ __forceinline__ int ceil_log2_32(unsigned int x) { + if (x <= 1) return 0; + return 32 - __clz(x - 1); +} + +template +__global__ void compute_analysis_pass1(int m, + const int* __restrict__ csr_row_ptr, + int* __restrict__ bin_count, + int* __restrict__ row_index_in_bin) +{ + const int tid = threadIdx.x; + const int bid = blockIdx.x; + const int gid = tid + BLOCKSIZE * bid; + + if(gid < m) + { + const int row_length = csr_row_ptr[gid + 1] - csr_row_ptr[gid]; + const int bin = (row_length != 0) ? ceil_log2_32(row_length) : 0; + + row_index_in_bin[gid] = atomicAdd(&bin_count[bin], 1); + } +} + +template +__global__ void compute_analysis_pass2(int m, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ bin_count, + const int* __restrict__ row_index_in_bin, + int* __restrict__ bin_start_ptr, + int* __restrict__ row_index_in_bin_sorted) +{ + const int tid = threadIdx.x; + const int bid = blockIdx.x; + const int gid = tid + BLOCKSIZE * bid; + + __shared__ int bin_start_ptr_shared[32]; + + if(tid == 0) + { + int count = 0; + for(int i = 0; i < 32; i++) + { + const int tmp = bin_count[i]; + bin_start_ptr[i] = count; + bin_start_ptr_shared[i] = count; + count += tmp; + } + } + + __syncthreads(); + + if(gid < m) + { + const int row_length = csr_row_ptr[gid + 1] - csr_row_ptr[gid]; + const int bin = (row_length != 0) ? ceil_log2_32(row_length) : 0; + + row_index_in_bin_sorted[bin_start_ptr_shared[bin] + row_index_in_bin[gid]] = gid; + } +} + +template +__global__ void csrmv_lrb_small_kernel(int m, + int n, + int nnz, + int bin, + int bin_count, + const T alpha, + const int* __restrict__ bin_start_ptr, + const int* __restrict__ row_index_in_bin_sorted, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ csr_col_ind, + const T* __restrict__ csr_val, + const T* __restrict__ x, + const T beta, + T* __restrict__ y) +{ + const int tid = threadIdx.x; + const int bid = blockIdx.x; + const int gid = tid + BLOCKSIZE * bid; + + __shared__ T shared[BLOCKSIZE]; + + if(gid < bin_count) + { + const int row = row_index_in_bin_sorted[bin_start_ptr[bin] + gid]; + + assert(row < m); + + const int start = csr_row_ptr[row]; + const int end = csr_row_ptr[row + 1]; + + T sum = static_cast(0); + for(int j = start; j < end; j++) + { + const int col = csr_col_ind[j]; + const T val = csr_val[j]; + + sum = std::fma(x[col], val, sum); + } + + if(beta == static_cast(0)) + { + y[row] = alpha * sum; + } + else + { + y[row] = std::fma(alpha, sum, beta * y[row]); + } + } +} + +template +__global__ void csrmv_lrb_medium_kernel(int m, + int n, + int nnz, + int bin, + int bin_count, + const T alpha, + const int* __restrict__ bin_start_ptr, + const int* __restrict__ row_index_in_bin_sorted, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ csr_col_ind, + const T* __restrict__ csr_val, + const T* __restrict__ x, + const T beta, + T* __restrict__ y) +{ + const int tid = threadIdx.x; + const int bid = blockIdx.x; + const int gid = tid + BLOCKSIZE * bid; + + const int lid = tid & WARPSIZE - 1; + //const int wid = tid / WARPSIZE; + + for(int i = gid / WARPSIZE; i < bin_count; i += (BLOCKSIZE / WARPSIZE) * gridDim.x) + { + const int row = row_index_in_bin_sorted[bin_start_ptr[bin] + i]; + + const int row_start = csr_row_ptr[row]; + const int row_end = csr_row_ptr[row + 1]; + + T sum = static_cast(0); + for(int j = row_start + lid; j < row_end; j += WARPSIZE) + { + const int col = csr_col_ind[j]; + const T val = csr_val[j]; + + sum = std::fma(x[col], val, sum); + } + + warp_reduction_sum(&sum); + + if(lid == 0) + { + if(beta == static_cast(0)) + { + y[row] = alpha * sum; + } + else + { + y[row] = std::fma(alpha, sum, beta * y[row]); + } + } + } +} + +template +__global__ void csrmv_lrb_medium_large_kernel(int m, + int n, + int nnz, + int bin, + int bin_count, + const T alpha, + const int* __restrict__ bin_start_ptr, + const int* __restrict__ row_index_in_bin_sorted, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ csr_col_ind, + const T* __restrict__ csr_val, + const T* __restrict__ x, + const T beta, + T* __restrict__ y) +{ + const int tid = threadIdx.x; + const int bid = blockIdx.x; + const int gid = tid + BLOCKSIZE * bid; + + __shared__ T shared[BLOCKSIZE]; + + for(int i = bid; i < bin_count; i += gridDim.x) + { + const int row = row_index_in_bin_sorted[bin_start_ptr[bin] + i]; + + const int row_start = csr_row_ptr[row]; + const int row_end = csr_row_ptr[row + 1]; + + T sum = static_cast(0); + for(int j = row_start + tid; j < row_end; j += BLOCKSIZE) + { + const int col = csr_col_ind[j]; + const T val = csr_val[j]; + + sum = std::fma(x[col], val, sum); + } + + shared[tid] = sum; + __syncthreads(); + + block_reduction_sum(shared, tid); + + if(tid == 0) + { + if(beta == static_cast(0)) + { + y[row] = alpha * shared[0]; + } + else + { + y[row] = std::fma(alpha, shared[0], beta * y[row]); + } + } + } +} + +template +__global__ void csrmv_lrb_large_kernel(int m, + int n, + int nnz, + int bin, + int bin_count, + const T alpha, + const int* __restrict__ bin_start_ptr, + const int* __restrict__ row_index_in_bin_sorted, + const int* __restrict__ csr_row_ptr, + const int* __restrict__ csr_col_ind, + const T* __restrict__ csr_val, + const T* __restrict__ x, + const T beta, + T* __restrict__ y) +{ + const int tid = threadIdx.x; + const int bid = blockIdx.x; + const int gid = tid + BLOCKSIZE * bid; + + __shared__ T shared[BLOCKSIZE]; + + const int bin_size = 1 << bin; + + const int blocks_per_row = bin_size / BLOCKSIZE; + + const int row + = row_index_in_bin_sorted[bin_start_ptr[bid / blocks_per_row] + bid % blocks_per_row]; + + const int row_start = csr_row_ptr[row] + BLOCKSIZE * (bid % blocks_per_row); + const int row_end = csr_row_ptr[row + 1]; + + T sum = static_cast(0); + for(int j = row_start + tid; j < row_end; j += BLOCKSIZE * blocks_per_row) + { + const int col = csr_col_ind[j]; + const T val = csr_val[j]; + + sum = std::fma(x[col], val, sum); + } + + shared[tid] = sum; + __syncthreads(); + + block_reduction_sum(shared, tid); + + if(tid == 0) + { + if(beta == static_cast(0)) + { + atomicAdd(&y[row], alpha * shared[0]); + } + else + { + // if(bid / blocks_per_row == 0) + // { + // // atomicAdd(&y[row], alpha * shared[0] + beta); + // } + // else + // { + // atomicAdd(&y[row], alpha * shared[0]); + // } + } + } + + // __shared__ T shared[BLOCKSIZE]; + + // for(int i = bid; i < bin_count; i += gridDim.x) + // { + // const int row = row_index_in_bin_sorted[bin_start_ptr[bin] + i]; + + // const int row_start = csr_row_ptr[row]; + // const int row_end = csr_row_ptr[row + 1]; + + // T sum = static_cast(0); + // for(int j = row_start + tid; j < row_end; j += BLOCKSIZE) + // { + // const int col = csr_col_ind[j]; + // const T val = csr_val[j]; + + // sum = std::fma(x[col], val, sum); + // } + + // shared[tid] = sum; + // __syncthreads(); + + // block_reduction_sum(shared, tid); + + // if(tid == 0) + // { + // if(beta == static_cast(0)) + // { + // y[row] = alpha * shared[0]; + // } + // else + // { + // y[row] = std::fma(alpha, shared[0], beta * y[row]); + // } + // } + // } +} + #endif diff --git a/library/src/backend/device/cuda/cuda_csric0.cu b/library/src/backend/device/cuda/cuda_csric0.cu index 214b9bc..aa652a3 100644 --- a/library/src/backend/device/cuda/cuda_csric0.cu +++ b/library/src/backend/device/cuda/cuda_csric0.cu @@ -74,6 +74,9 @@ void linalg::cuda_csric0_analysis(int m, { std::cout << "cuda_csric0_analysis m: " << m << " n: " << n << " nnz: " << nnz << std::endl; + // Free cuda memory that may have been allocated from previous calls to analysis + free_csric0_cuda_data(descr); + // Free any previous allocations? assert(descr->done_array == nullptr); assert(descr->row_perm == nullptr); diff --git a/library/src/backend/device/cuda/cuda_csrilu0.cu b/library/src/backend/device/cuda/cuda_csrilu0.cu index c3c39c6..9408a24 100644 --- a/library/src/backend/device/cuda/cuda_csrilu0.cu +++ b/library/src/backend/device/cuda/cuda_csrilu0.cu @@ -70,6 +70,9 @@ void linalg::cuda_csrilu0_analysis(int m, const T* csr_val, csrilu0_descr* descr) { + // Free cuda memory that may have been allocated from previous calls to analysis + free_csrilu0_cuda_data(descr); + // Free any previous allocations? assert(descr->done_array == nullptr); assert(descr->row_perm == nullptr); diff --git a/library/src/backend/device/cuda/cuda_csrtrsv.cu b/library/src/backend/device/cuda/cuda_csrtrsv.cu index 964ccc8..dcfd940 100644 --- a/library/src/backend/device/cuda/cuda_csrtrsv.cu +++ b/library/src/backend/device/cuda/cuda_csrtrsv.cu @@ -69,6 +69,9 @@ void linalg::cuda_csrtrsv_analysis(int m, diagonal_type diag_type, csrtrsv_descr* descr) { + // Free cuda memory that may have been allocated from previous calls to analysis + free_csrtrsv_cuda_data(descr); + // Free any previous allocations? assert(descr->done_array == nullptr); assert(descr->row_perm == nullptr); diff --git a/library/src/backend/device/cuda/cuda_matrix_vector.cu b/library/src/backend/device/cuda/cuda_matrix_vector.cu index bfa1ceb..17855cf 100644 --- a/library/src/backend/device/cuda/cuda_matrix_vector.cu +++ b/library/src/backend/device/cuda/cuda_matrix_vector.cu @@ -24,6 +24,9 @@ // //******************************************************************************** +#include +#include +#include #include #include "cuda_matrix_vector.h" @@ -35,44 +38,434 @@ #include "../../../trace.h" -//------------------------------------------------------------------------------- -// sparse matrix-vector product y = A*x -//------------------------------------------------------------------------------- -template -void linalg::cuda_matrix_vector_product(int m, - int n, - int nnz, - const int* csr_row_ptr, - const int* csr_col_ind, - const T* csr_val, - const T* x, - T* y) +namespace linalg { - ROUTINE_TRACE("linalg::cuda_matrix_vector_product_impl"); + static std::string csrmv_alg_to_string(csrmv_algorithm alg) + { + switch(alg) + { + case csrmv_algorithm::default_algorithm: + return "default_algorithm"; + case csrmv_algorithm::rowsplit: + return "rowsplit"; + case csrmv_algorithm::nnzsplit: + return "nnzsplit"; + case csrmv_algorithm::merge_path: + return "marge_path"; + case csrmv_algorithm::lrb: + return "lrb"; + } - int avg_nnz_per_row = nnz / m; + return "invalid"; + } - if(avg_nnz_per_row <= 8) + static void csrmv_analysis_lrb_dispatch( + int m, int n, int nnz, const int* csr_row_ptr, const int* csr_col_ind, csrmv_descr* descr) { - csrmv_vector_kernel<256, 4><<<((m - 1) / (256 / 4) + 1), 256>>>( - m, n, nnz, T(1), csr_row_ptr, csr_col_ind, csr_val, x, T(0), y); + // Free any previous allocations? + assert(descr->bin_start_ptr == nullptr); + assert(descr->row_index_in_bin == nullptr); + assert(descr->row_index_in_bin_sorted == nullptr); + + CHECK_CUDA(cudaMalloc((void**)&(descr->bin_count), sizeof(int) * 32)); + CHECK_CUDA(cudaMalloc((void**)&(descr->bin_start_ptr), sizeof(int) * (32 + 1))); + CHECK_CUDA(cudaMalloc((void**)&(descr->row_index_in_bin), sizeof(int) * m)); + CHECK_CUDA(cudaMalloc((void**)&(descr->row_index_in_bin_sorted), sizeof(int) * m)); + + CHECK_CUDA(cudaMemset(descr->bin_count, 0, sizeof(int) * 32)); + + compute_analysis_pass1<256><<<((m - 1) / 256 + 1), 256>>>( + m, + csr_row_ptr, + descr->bin_count, + descr->row_index_in_bin); + + CHECK_CUDA(cudaMemcpy(descr->hbin_count.data(), + descr->bin_count, + sizeof(int) * 32, + cudaMemcpyDeviceToHost)); + + compute_analysis_pass2<256><<<((m - 1) / 256 + 1), 256>>>( + m, + csr_row_ptr, + descr->bin_count, + descr->row_index_in_bin, + descr->bin_start_ptr, + descr->row_index_in_bin_sorted); + + + + + + + + + // // Free any previous allocations? + // assert(descr->bin_start_ptr == nullptr); + // assert(descr->row_index_in_bin == nullptr); + // assert(descr->row_index_in_bin_sorted == nullptr); + + // CHECK_CUDA(cudaMalloc((void**)&(descr->bin_start_ptr), sizeof(int) * (32 + 1))); + // CHECK_CUDA(cudaMalloc((void**)&(descr->row_index_in_bin), sizeof(int) * m)); + // CHECK_CUDA(cudaMalloc((void**)&(descr->row_index_in_bin_sorted), sizeof(int) * m)); + + // CHECK_CUDA(cudaMemset(descr->row_index_in_bin_sorted, 0, sizeof(int) * m)); + + // for(int i = 0; i < 32; i++) + // { + // descr->hbin_count[i] = 0; + // } + + // std::vector hcsr_row_ptr(m + 1); + // CHECK_CUDA(cudaMemcpy( + // hcsr_row_ptr.data(), csr_row_ptr, sizeof(int) * (m + 1), cudaMemcpyDeviceToHost)); + + // std::vector row_index_in_bin(m, 0); + // std::array bin_start_ptr = {}; + + // for(int i = 0; i < m; i++) + // { + // const int row_length = hcsr_row_ptr[i + 1] - hcsr_row_ptr[i]; + // const int bin = (row_length != 0) ? std::ceil(std::log2(row_length)) : 0; + + // row_index_in_bin[i] = descr->hbin_count[bin]; + // descr->hbin_count[bin]++; + // bin_start_ptr[bin]++; + // } + + // // std::cout << "descr->hbin_count" << std::endl; + // // for(int i = 0; i < 32; i++) + // // { + // // std::cout << descr->hbin_count[i] << " "; + // // } + // // std::cout << "" << std::endl; + + // // std::cout << "bin_start_ptr" << std::endl; + // // for(int i = 0; i < 32 + 1; i++) + // // { + // // std::cout << bin_start_ptr[i] << " "; + // // } + // // std::cout << "" << std::endl; + + // // std::cout << "row_index_in_bin" << std::endl; + // // for(int i = 0; i < m; i++) + // // { + // // std::cout << row_index_in_bin[i] << " "; + // // } + // // std::cout << "" << std::endl; + + // int count = 0; + // for(int i = 0; i < 32; i++) + // { + // const int tmp = bin_start_ptr[i]; + // bin_start_ptr[i] = count; + // count += tmp; + // } + + // // std::cout << "bin_start_ptr" << std::endl; + // // for(int i = 0; i < 32 + 1; i++) + // // { + // // std::cout << bin_start_ptr[i] << " "; + // // } + // // std::cout << "" << std::endl; + + // std::vector row_index_in_bin_sorted(m, 0); + // for(int i = 0; i < m; i++) + // { + // const int row_length = hcsr_row_ptr[i + 1] - hcsr_row_ptr[i]; + // const int bin = (row_length != 0) ? std::ceil(std::log2(row_length)) : 0; + + // row_index_in_bin_sorted[bin_start_ptr[bin] + row_index_in_bin[i]] = i; + // } + + // // std::cout << "bin_start_ptr" << std::endl; + // // for(int i = 0; i < 32 + 1; i++) + // // { + // // std::cout << bin_start_ptr[i] << " "; + // // } + // // std::cout << "" << std::endl; + + // // std::cout << "row_index_in_bin_sorted" << std::endl; + // // for(int i = 0; i < m; i++) + // // { + // // std::cout << row_index_in_bin_sorted[i] << " "; + // // } + // // std::cout << "" << std::endl; + + // CHECK_CUDA(cudaMemcpy(descr->bin_start_ptr, + // bin_start_ptr.data(), + // sizeof(int) * (32 + 1), + // cudaMemcpyHostToDevice)); + // CHECK_CUDA(cudaMemcpy(descr->row_index_in_bin, + // row_index_in_bin.data(), + // sizeof(int) * m, + // cudaMemcpyHostToDevice)); + // CHECK_CUDA(cudaMemcpy(descr->row_index_in_bin_sorted, + // row_index_in_bin_sorted.data(), + // sizeof(int) * m, + // cudaMemcpyHostToDevice)); } - else if(avg_nnz_per_row <= 16) + + static void csrmv_analysis_merge_path_dispatch( + int m, int n, int nnz, const int* csr_row_ptr, const int* csr_col_ind, csrmv_descr* descr) { - csrmv_vector_kernel<256, 8><<<((m - 1) / (256 / 8) + 1), 256>>>( - m, n, nnz, T(1), csr_row_ptr, csr_col_ind, csr_val, x, T(0), y); } - else if(avg_nnz_per_row <= 32) + + static void csrmv_analysis_algorithm_dispatch(int m, + int n, + int nnz, + const int* csr_row_ptr, + const int* csr_col_ind, + csrmv_algorithm alg, + csrmv_descr* descr) { - csrmv_vector_kernel<256, 16><<<((m - 1) / (256 / 16) + 1), 256>>>( - m, n, nnz, T(1), csr_row_ptr, csr_col_ind, csr_val, x, T(0), y); + switch(alg) + { + case csrmv_algorithm::default_algorithm: + case csrmv_algorithm::rowsplit: + case csrmv_algorithm::nnzsplit: + break; + case csrmv_algorithm::merge_path: + csrmv_analysis_merge_path_dispatch(m, n, nnz, csr_row_ptr, csr_col_ind, descr); + break; + case csrmv_algorithm::lrb: + csrmv_analysis_lrb_dispatch(m, n, nnz, csr_row_ptr, csr_col_ind, descr); + break; + default: + throw std::runtime_error("Unknown csrmv_algorithm"); + } } - else + + template + static void csrmv_row_split_dispatch(int m, + int n, + int nnz, + T alpha, + const int* csr_row_ptr, + const int* csr_col_ind, + const T* csr_val, + const T* x, + T beta, + T* y, + const csrmv_descr* descr) { - csrmv_vector_kernel<256, 32><<<((m - 1) / (256 / 32) + 1), 256>>>( - m, n, nnz, T(1), csr_row_ptr, csr_col_ind, csr_val, x, T(0), y); + const int avg_nnz_per_row = nnz / m; + + if(avg_nnz_per_row <= 8) + { + csrmv_row_split_kernel<256, 4><<<((m - 1) / (256 / 4) + 1), 256>>>( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); + } + else if(avg_nnz_per_row <= 16) + { + csrmv_row_split_kernel<256, 8><<<((m - 1) / (256 / 8) + 1), 256>>>( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); + } + else if(avg_nnz_per_row <= 32) + { + csrmv_row_split_kernel<256, 16><<<((m - 1) / (256 / 16) + 1), 256>>>( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); + } + else + { + csrmv_row_split_kernel<256, 32><<<((m - 1) / (256 / 32) + 1), 256>>>( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); + } + } + + template + static void csrmv_nnz_split_dispatch(int m, + int n, + int nnz, + T alpha, + const int* csr_row_ptr, + const int* csr_col_ind, + const T* csr_val, + const T* x, + T beta, + T* y, + const csrmv_descr* descr) + { + CHECK_CUDA(cudaMemset(y, 0, sizeof(T) * m)); // need to call kernel to handle beta + + csrmv_nnz_split_kernel<256, 32, 8><<<((nnz - 1) / (8 * 256) + 1), 256>>>( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); + } + + template + static void csrmv_lrb_dispatch(int m, + int n, + int nnz, + T alpha, + const int* csr_row_ptr, + const int* csr_col_ind, + const T* csr_val, + const T* x, + T beta, + T* y, + const csrmv_descr* descr) + { + // Short rows (bin sizes 2-16) + for(int bin = 0; bin < 5; bin++) + { + if(descr->hbin_count[bin] > 0) + { + // std::cout << "small bin: " << bin << " hbin_count[bin]: " << descr->hbin_count[bin] + // << std::endl; + csrmv_lrb_small_kernel<256> + <<<((descr->hbin_count[bin] - 1) / 256 + 1), 256>>>(m, + n, + nnz, + bin, + descr->hbin_count[bin], + alpha, + descr->bin_start_ptr, + descr->row_index_in_bin_sorted, + csr_row_ptr, + csr_col_ind, + csr_val, + x, + beta, + y); + } + } + + // Medium rows (one warp per row, bin sizes 32-128) + for(int bin = 5; bin < 8; bin++) + { + if(descr->hbin_count[bin] > 0) + { + // int bin_size = 1 << bin; + // std::cout << "medium bin: " << bin << " hbin_count[bin]: " << descr->hbin_count[bin] + // << " bin_size: " << bin_size << std::endl; + csrmv_lrb_medium_kernel<256, 32> + <<<((descr->hbin_count[bin] - 1) / (256 / 32) + 1), 256>>>( + m, + n, + nnz, + bin, + descr->hbin_count[bin], + alpha, + descr->bin_start_ptr, + descr->row_index_in_bin_sorted, + csr_row_ptr, + csr_col_ind, + csr_val, + x, + beta, + y); + } + } + + // Medium-large rows (one block per row, bin sizes 256-2^32) + for(int bin = 8; bin < 32 /*14*/; bin++) + { + if(descr->hbin_count[bin] > 0) + { + // std::cout << "medium-large bin: " << bin + // << " hbin_count[bin]: " << descr->hbin_count[bin] << std::endl; + csrmv_lrb_medium_large_kernel<256> + <<<((descr->hbin_count[bin] - 1) / 256 + 1), 256>>>( + m, + n, + nnz, + bin, + descr->hbin_count[bin], + alpha, + descr->bin_start_ptr, + descr->row_index_in_bin_sorted, + csr_row_ptr, + csr_col_ind, + csr_val, + x, + beta, + y); + } + } + + // for(int bin = 0/*14*/; bin < 32; bin++) + // { + // if(descr->hbin_count[bin] > 0) + // { + // // How many blocks do I need? + // const int bin_size = 1 << bin; + + // const int num_blocks = descr->hbin_count[bin] * (bin_size / 256); + + // csrmv_lrb_large_kernel<256> + // <<>>( + // m, + // n, + // nnz, + // bin, + // descr->hbin_count[bin], + // alpha, + // descr->bin_start_ptr, + // descr->row_index_in_bin_sorted, + // csr_row_ptr, + // csr_col_ind, + // csr_val, + // x, + // beta, + // y); + // } + // } + } + + template + static void csrmv_merge_path_dispatch(int m, + int n, + int nnz, + T alpha, + const int* csr_row_ptr, + const int* csr_col_ind, + const T* csr_val, + const T* x, + T beta, + T* y, + const csrmv_descr* descr) + { + } + + template + static void csrmv_algorithm_dispatch(int m, + int n, + int nnz, + T alpha, + const int* csr_row_ptr, + const int* csr_col_ind, + const T* csr_val, + const T* x, + T beta, + T* y, + csrmv_algorithm alg, + const csrmv_descr* descr) + { + // std::cout << "alg: " << csrmv_alg_to_string(alg) << std::endl; + + switch(alg) + { + case csrmv_algorithm::default_algorithm: + case csrmv_algorithm::rowsplit: + csrmv_row_split_dispatch( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y, descr); + break; + case csrmv_algorithm::nnzsplit: + csrmv_nnz_split_dispatch( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y, descr); + break; + case csrmv_algorithm::merge_path: + csrmv_merge_path_dispatch( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y, descr); + break; + case csrmv_algorithm::lrb: + csrmv_lrb_dispatch( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y, descr); + break; + default: + throw std::runtime_error("Unknown csrmv_algorithm"); + } } - CHECK_CUDA_LAUNCH_ERROR(); } //------------------------------------------------------------------------------- @@ -99,6 +492,21 @@ void linalg::free_csrmv_cuda_data(csrmv_descr* descr) { if(descr != nullptr) { + if(descr->bin_start_ptr != nullptr) + { + CHECK_CUDA(cudaFree(descr->bin_start_ptr)); + descr->bin_start_ptr = nullptr; + } + if(descr->row_index_in_bin != nullptr) + { + CHECK_CUDA(cudaFree(descr->row_index_in_bin)); + descr->row_index_in_bin = nullptr; + } + if(descr->row_index_in_bin_sorted != nullptr) + { + CHECK_CUDA(cudaFree(descr->row_index_in_bin_sorted)); + descr->row_index_in_bin_sorted = nullptr; + } } } @@ -112,6 +520,10 @@ void linalg::cuda_csrmv_analysis(int m, csrmv_algorithm alg, csrmv_descr* descr) { + // Free cuda memory that may have been allocated from previous calls to analysis + free_csrmv_cuda_data(descr); + + csrmv_analysis_algorithm_dispatch(m, n, nnz, csr_row_ptr, csr_col_ind, alg, descr); } template @@ -130,47 +542,10 @@ void linalg::cuda_csrmv_solve(int m, { ROUTINE_TRACE("linalg::cuda_csrmv_solve"); - // const int avg_nnz_per_row = nnz / m; - - // if(avg_nnz_per_row <= 8) - // { - // csrmv_vector_kernel<256, 4><<<((m - 1) / (256 / 4) + 1), 256>>>( - // m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); - // } - // else if(avg_nnz_per_row <= 16) - // { - // csrmv_vector_kernel<256, 8><<<((m - 1) / (256 / 8) + 1), 256>>>( - // m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); - // } - // else if(avg_nnz_per_row <= 32) - // { - // csrmv_vector_kernel<256, 16><<<((m - 1) / (256 / 16) + 1), 256>>>( - // m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); - // } - // else - // { - // csrmv_vector_kernel<256, 32><<<((m - 1) / (256 / 32) + 1), 256>>>( - // m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); - // } - - //int grid_size = ((nnz - 1) / (8 * 256) + 1); - //std::cout << "AAAAAA nnz: " << nnz << " grid_size: " << grid_size << std::endl; - - - - - - CHECK_CUDA(cudaMemset(y, 0, sizeof(T) * m)); // need to call kernel to handle beta - - csrmv_stream_kernel<256, 32, 8><<<((nnz - 1) / (8 * 256) + 1), 256>>>( - m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y); - + csrmv_algorithm_dispatch( + m, n, nnz, alpha, csr_row_ptr, csr_col_ind, csr_val, x, beta, y, alg, descr); } -template void linalg::cuda_matrix_vector_product( - int, int, int, const int*, const int*, const double*, const double*, double*); -template void linalg::cuda_matrix_vector_product( - int, int, int, const int*, const int*, const float*, const float*, float*); template void linalg::cuda_compute_residual( int, int, int, const int*, const int*, const double*, const double*, const double*, double*); template void linalg::cuda_compute_residual( diff --git a/library/src/backend/device/cuda/cuda_matrix_vector.h b/library/src/backend/device/cuda/cuda_matrix_vector.h index e55cb86..1c8a8be 100644 --- a/library/src/backend/device/cuda/cuda_matrix_vector.h +++ b/library/src/backend/device/cuda/cuda_matrix_vector.h @@ -31,15 +31,6 @@ namespace linalg { template - void cuda_matrix_vector_product(int m, - int n, - int nnz, - const int* csr_row_ptr, - const int* csr_col_ind, - const T* csr_val, - const T* x, - T* y); - template void cuda_compute_residual(int m, int n, int nnz, diff --git a/library/src/backend/host/host_matrix_vector.cpp b/library/src/backend/host/host_matrix_vector.cpp index ec829a7..e1d8af4 100644 --- a/library/src/backend/host/host_matrix_vector.cpp +++ b/library/src/backend/host/host_matrix_vector.cpp @@ -121,6 +121,7 @@ void linalg::host_csrmv_solve(double alpha, case csrmv_algorithm::merge_path: case csrmv_algorithm::rowsplit: case csrmv_algorithm::nnzsplit: + case csrmv_algorithm::lrb: host_csrmv_impl(A.get_m(), A.get_n(), A.get_nnz(), diff --git a/library/src/csr_matrix.cpp b/library/src/csr_matrix.cpp index 81a2a77..b08df0c 100644 --- a/library/src/csr_matrix.cpp +++ b/library/src/csr_matrix.cpp @@ -49,6 +49,11 @@ csr_matrix::csr_matrix() , nnz(0) , on_host(true) { + create_csrmv_descr(&this->descr_mv); + create_csrgemm_descr(&this->descr_gemm); + create_csrtrsv_descr(&this->descr_sv); + create_csric0_descr(&this->descr_ic); + create_csrilu0_descr(&this->descr_ilu); } template @@ -71,11 +76,22 @@ csr_matrix::csr_matrix(const std::vector& csr_row_ptr, this->nnz = nnz; this->on_host = true; + + create_csrmv_descr(&this->descr_mv); + create_csrgemm_descr(&this->descr_gemm); + create_csrtrsv_descr(&this->descr_sv); + create_csric0_descr(&this->descr_ic); + create_csrilu0_descr(&this->descr_ilu); } template csr_matrix::~csr_matrix() { + destroy_csrmv_descr(this->descr_mv); + destroy_csrgemm_descr(this->descr_gemm); + destroy_csrtrsv_descr(this->descr_sv); + destroy_csric0_descr(this->descr_ic); + destroy_csrilu0_descr(this->descr_ilu); } template @@ -304,14 +320,16 @@ void csr_matrix::multiply_by_vector(vector& y, const vector& x) const { ROUTINE_TRACE("csr_matrix::multiply_by_vector"); - csrmv_descr* descr = nullptr; - create_csrmv_descr(&descr); + // csrmv_descr* descr = nullptr; + // create_csrmv_descr(&descr); - csrmv_analysis(*this, csrmv_algorithm::default_algorithm, descr); + csrmv_analysis(*this, csrmv_algorithm::lrb, descr_mv); + // csrmv_analysis(*this, csrmv_algorithm::default_algorithm, descr); - csrmv_solve(1.0, *this, x, 0.0, y, csrmv_algorithm::default_algorithm, descr); + csrmv_solve(1.0, *this, x, 0.0, y, csrmv_algorithm::lrb, descr_mv); + // csrmv_solve(1.0, *this, x, 0.0, y, csrmv_algorithm::default_algorithm, descr); - destroy_csrmv_descr(descr); + // destroy_csrmv_descr(descr); } template @@ -319,14 +337,14 @@ void csr_matrix::multiply_by_vector_and_add(vector& y, const vector& x) { ROUTINE_TRACE("csr_matrix::multiply_by_vector_and_add"); - csrmv_descr* descr = nullptr; - create_csrmv_descr(&descr); + // csrmv_descr* descr = nullptr; + // create_csrmv_descr(&descr); - csrmv_analysis(*this, csrmv_algorithm::default_algorithm, descr); + csrmv_analysis(*this, csrmv_algorithm::default_algorithm, descr_mv); - csrmv_solve(1.0, *this, x, 1.0, y, csrmv_algorithm::default_algorithm, descr); + csrmv_solve(1.0, *this, x, 1.0, y, csrmv_algorithm::default_algorithm, descr_mv); - destroy_csrmv_descr(descr); + // destroy_csrmv_descr(descr); } template @@ -342,14 +360,14 @@ void csr_matrix::multiply_by_matrix(csr_matrix& C, const csr_matrix& B) D.move_to_device(); } - csrgemm_descr* descr = nullptr; - create_csrgemm_descr(&descr); + // csrgemm_descr* descr = nullptr; + // create_csrgemm_descr(&descr); - csrgemm_nnz(*this, B, D, C, csrgemm_algorithm::default_algorithm, descr); + csrgemm_nnz(*this, B, D, C, csrgemm_algorithm::default_algorithm, descr_gemm); - csrgemm_solve(1.0, *this, B, 0.0, D, C, csrgemm_algorithm::default_algorithm, descr); + csrgemm_solve(1.0, *this, B, 0.0, D, C, csrgemm_algorithm::default_algorithm, descr_gemm); - destroy_csrgemm_descr(descr); + // destroy_csrgemm_descr(descr); } template @@ -357,13 +375,13 @@ void csr_matrix::triangular_solve_lower(vector& x, const vector& y, boo { ROUTINE_TRACE("csr_matrix::triangular_solve_lower"); - csrtrsv_descr* descr = nullptr; - create_csrtrsv_descr(&descr); + // csrtrsv_descr* descr = nullptr; + // create_csrtrsv_descr(&descr); csrtrsv_analysis(*this, triangular_type::lower, unit_diag ? diagonal_type::unit : diagonal_type::non_unit, - descr); + descr_sv); // Perform the triangular solve csrtrsv_solve(*this, @@ -372,9 +390,9 @@ void csr_matrix::triangular_solve_lower(vector& x, const vector& y, boo static_cast(1.0), triangular_type::lower, unit_diag ? diagonal_type::unit : diagonal_type::non_unit, - descr); + descr_sv); - destroy_csrtrsv_descr(descr); + // destroy_csrtrsv_descr(descr); } template @@ -382,13 +400,13 @@ void csr_matrix::triangular_solve_upper(vector& x, const vector& y, boo { ROUTINE_TRACE("csr_matrix::triangular_solve_upper"); - csrtrsv_descr* descr = nullptr; - create_csrtrsv_descr(&descr); + // csrtrsv_descr* descr = nullptr; + // create_csrtrsv_descr(&descr); csrtrsv_analysis(*this, triangular_type::upper, unit_diag ? diagonal_type::unit : diagonal_type::non_unit, - descr); + descr_sv); // Perform the triangular solve csrtrsv_solve(*this, @@ -397,9 +415,9 @@ void csr_matrix::triangular_solve_upper(vector& x, const vector& y, boo static_cast(1.0), triangular_type::upper, unit_diag ? diagonal_type::unit : diagonal_type::non_unit, - descr); + descr_sv); - destroy_csrtrsv_descr(descr); + // destroy_csrtrsv_descr(descr); } template @@ -407,15 +425,15 @@ void csr_matrix::compute_incomplete_cholesky_factorization() { ROUTINE_TRACE("csr_matrix::compute_incomplete_cholesky_factorization"); - csric0_descr* descr = nullptr; - create_csric0_descr(&descr); + // csric0_descr* descr = nullptr; + // create_csric0_descr(&descr); - csric0_analysis(*this, descr); + csric0_analysis(*this, descr_ic); // Compute Cholesky factorization inplace - csric0_compute(*this, descr); + csric0_compute(*this, descr_ic); - destroy_csric0_descr(descr); + // destroy_csric0_descr(descr); } template @@ -423,15 +441,15 @@ void csr_matrix::compute_incomplete_LU_factorization() { ROUTINE_TRACE("csr_matrix::compute_incomplete_LU_factorization"); - csrilu0_descr* descr = nullptr; - create_csrilu0_descr(&descr); + // csrilu0_descr* descr = nullptr; + // create_csrilu0_descr(&descr); - csrilu0_analysis(*this, descr); + csrilu0_analysis(*this, descr_ilu); // Compute ILU factorization inplace - csrilu0_compute(*this, descr); + csrilu0_compute(*this, descr_ilu); - destroy_csrilu0_descr(descr); + // destroy_csrilu0_descr(descr); } template diff --git a/library/src/descriptors/csrmv_descr_internal.h b/library/src/descriptors/csrmv_descr_internal.h index 087c07c..ba58c3c 100644 --- a/library/src/descriptors/csrmv_descr_internal.h +++ b/library/src/descriptors/csrmv_descr_internal.h @@ -27,10 +27,19 @@ #ifndef CSRMV_DESCR_INTERNAL_H #define CSRMV_DESCR_INTERNAL_H +#include + namespace linalg { struct csrmv_descr { + // LRB algorithm + std::array hbin_count; // how many rows belong to each bin + + int* bin_count; // desvice array of size 32, how many rows belong to each bin + int* bin_start_ptr; // device array of size (32 + 1) + int* row_index_in_bin; // device array of size m row_indices_perm? + int* row_index_in_bin_sorted; // device array of size m row_indices? }; } diff --git a/library/src/linalg_math.cpp b/library/src/linalg_math.cpp index c28c150..622e2ee 100644 --- a/library/src/linalg_math.cpp +++ b/library/src/linalg_math.cpp @@ -206,7 +206,10 @@ void linalg::create_csrmv_descr(csrmv_descr** descr) { ROUTINE_TRACE("linalg::create_csrmv_descr"); - *descr = new csrmv_descr; + *descr = new csrmv_descr; + (*descr)->bin_start_ptr = nullptr; + (*descr)->row_index_in_bin = nullptr; + (*descr)->row_index_in_bin_sorted = nullptr; } void linalg::destroy_csrmv_descr(csrmv_descr* descr) diff --git a/tools/Benchmark_Metrics_Tools.md b/tools/Benchmark_Metrics_Tools.md new file mode 100644 index 0000000..e0670a2 --- /dev/null +++ b/tools/Benchmark_Metrics_Tools.md @@ -0,0 +1,115 @@ +# GoogleTest Benchmark Metrics Tools + +A collection of Python scripts to run GoogleTest matrix benchmarks, parse performance output into structured YAML files, and visualize effective bandwidth. + +--- + +## Prerequisites + +Install required Python dependencies before using the scripts: + +```bash +pip install pyyaml matplotlib numpy +``` + +--- + +## Tool Overview + +### 1. `run_metrics.py` (Benchmark Runner & Parser) + +Runs your C++ GoogleTest executable with a specified filter, extracts performance metrics (`Solve time` and `Effective Bandwidth`), normalizes matrix identifiers (e.g., `quick_ci_GPU_nos1_mtx` -> `nos1.mtx`), and exports the results to a timestamped YAML file. + +**Usage:** + +```bash +python run_metrics.py --filter [--exe ] +``` + +**Options:** +* `--filter` *(Required)*: The test filter substring (e.g., `matrix_vector_product`). +* `--exe` *(Optional)*: Path to test executable (Default: `./test_main.exe`). + +**Example:** + +```bash +python run_metrics.py --filter matrix_vector_product --exe ./test_main.exe +``` + +**Output:** +Generates a file named `_.yaml` containing structured metrics: + +```yaml +- matrix_file: nos1.mtx + solve_time_ms: 7.6949 + effective_bandwidth_gbps: 0.22025 +- matrix_file: nos2.mtx + solve_time_ms: 7.4423 + effective_bandwidth_gbps: 0.924284 +``` + +--- + +### 2. `plot_metrics.py` (Single Run Visualization) + +Reads a generated benchmark YAML file and creates a bar chart displaying effective bandwidth (GB/s) per matrix file, complete with exact numerical values rendered above each bar. + +**Usage:** + +```bash +python plot_metrics.py [--output ] +``` + +**Options:** +* `YAML_FILE` *(Required)*: Path to the parsed benchmark YAML file. +* `-o, --output` *(Optional)*: Target path for the output PNG (Default: replaces `.yaml` extension with `.png`). + +**Example:** + +```bash +python plot_metrics.py matrix_vector_product_20260830_141922.yaml -o bandwidth_single_run.png +``` + +--- + +### 3. `compare_metrics.py` (Dual Run Comparison) + +Compares two benchmark YAML runs (e.g., Baseline vs. Optimized, or GPU vs. CPU) on a side-by-side grouped bar chart. Automatically aligns matching matrices and handles missing entries cleanly. + +**Usage:** + +```bash +python compare_metrics.py [--label1 ] [--label2 ] [--output ] +``` + +**Options:** +* `FILE1` *(Required)*: Path to the first benchmark YAML file. +* `FILE2` *(Required)*: Path to the second benchmark YAML file. +* `--label1` *(Optional)*: Legend label for Dataset 1 (Default: filename of Dataset 1). +* `--label2` *(Optional)*: Legend label for Dataset 2 (Default: filename of Dataset 2). +* `-o, --output` *(Optional)*: Target path for the comparison plot PNG. + +**Example:** + +```bash +python compare_metrics.py run_baseline.yaml run_optimized.yaml --label1 "Baseline Kernel" --label2 "Optimized Kernel" -o kernel_comparison.png +``` + +--- + +## End-to-End Workflow Example + +1. **Execute benchmarks and parse output:** + ```bash + python run_metrics.py --filter matrix_vector_product --exe ./bin/sparse_tests.exe + ``` + +2. **Visualize single benchmark run:** + ```bash + python plot_metrics.py matrix_vector_product_20260830_141922.yaml + ``` + +3. **Compare two separate optimization runs:** + ```bash + python compare_metrics.py matrix_vector_product_20260830_100000.yaml matrix_vector_product_20260830_141922.yaml --label1 "v1.0" --label2 "v1.1" -o release_comparison.png + ``` diff --git a/tools/comparison_matrix_vector_product_20260830_145014_vs_matrix_vector_product_20260830_145014.png b/tools/comparison_matrix_vector_product_20260830_145014_vs_matrix_vector_product_20260830_145014.png new file mode 100644 index 0000000000000000000000000000000000000000..4aabb3d1e59336a21168ca71febf3122d30a9d5a GIT binary patch literal 312043 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%0A&S?w+zj<;QS>yc$Ll!pVHpJL#F3LO{ER}h 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%0AA5oNdP^EeOmOiQ%$i%>_b5@|dO&c*?!^ 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�VY%XJYtQf6i1T24g&HENgxcbFgBH%pNBe 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΅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 effective_bandwidth_gbps.""" + with open(filepath, 'r') as f: + data = yaml.safe_load(f) + if not data: + return {} + return {item['matrix_file']: item['effective_bandwidth_gbps'] for item in data} + +def plot_comparison(file1_path, file2_path, label1=None, label2=None, output_image=None): + data1 = load_yaml_data(file1_path) + data2 = load_yaml_data(file2_path) + + if not data1 and not data2: + print("No valid data found in either YAML file.") + return + + # Use file names as legend labels if custom labels aren't provided + label1 = label1 or Path(file1_path).stem + label2 = label2 or Path(file2_path).stem + + # Preserve order from file 1 and append any new matrices found in file 2 + all_matrices = list(data1.keys()) + for matrix in data2.keys(): + if matrix not in all_matrices: + all_matrices.append(matrix) + + bw1 = [data1.get(m, 0.0) for m in all_matrices] + bw2 = [data2.get(m, 0.0) for m in all_matrices] + + x = np.arange(len(all_matrices)) + width = 0.35 + + fig, ax = plt.subplots(figsize=(12, 6)) + rects1 = ax.bar(x - width/2, bw1, width, label=label1, color='#1f77b4', edgecolor='#003366') + rects2 = ax.bar(x + width/2, bw2, width, label=label2, color='#ff7f0e', edgecolor='#b33c00') + + ax.set_xlabel("Matrix File", fontsize=11, fontweight='bold', labelpad=10) + ax.set_ylabel("Effective Bandwidth (GB/s)", fontsize=11, fontweight='bold') + ax.set_title(f"Bandwidth Comparison: {label1} vs {label2}", fontsize=13, fontweight='bold', pad=15) + + ax.set_xticks(x) + ax.set_xticklabels(all_matrices, rotation=45, ha='right', fontsize=10) + ax.legend(fontsize=10) + ax.grid(axis='y', linestyle='--', alpha=0.6) + ax.set_axisbelow(True) + + # Add numerical values above each bar + def annotate_bars(rects): + for rect in rects: + height = rect.get_height() + if height > 0: + ax.annotate( + f"{height:.2f}", + xy=(rect.get_x() + rect.get_width() / 2, height), + xytext=(0, 3), + textcoords="offset points", + ha='center', va='bottom', fontsize=8 + ) + + annotate_bars(rects1) + annotate_bars(rects2) + + plt.tight_layout() + + if not output_image: + output_image = f"comparison_{label1}_vs_{label2}.png" + + plt.savefig(output_image, dpi=300) + print(f"Comparison plot saved to: {output_image}") + plt.show() + +def main(): + parser = argparse.ArgumentParser(description="Compare matrix bandwidth metrics from two YAML benchmark outputs.") + parser.add_argument("file1", help="Path to the first YAML benchmark file") + parser.add_argument("file2", help="Path to the second YAML benchmark file") + parser.add_argument("--label1", help="Custom legend label for dataset 1 (e.g., 'GPU Run 1')") + parser.add_argument("--label2", help="Custom legend label for dataset 2 (e.g., 'GPU Run 2')") + parser.add_argument("--output", "-o", help="Path for saving output plot PNG") + args = parser.parse_args() + + plot_comparison(args.file1, args.file2, args.label1, args.label2, args.output) + +if __name__ == "__main__": + main() diff --git a/tools/record_test_performance.py b/tools/record_test_performance.py new file mode 100644 index 0000000..c3d7341 --- /dev/null +++ b/tools/record_test_performance.py @@ -0,0 +1,92 @@ +import subprocess +import re +import yaml +import argparse +from datetime import datetime + +def extract_matrix_name(param_string): + """ + Extracts the matrix filename by looking after 'GPU_' or 'CPU_' + and converting the trailing '_mtx' to '.mtx'. + + Example: 'quick_ci_GPU_nos1_mtx' -> 'nos1.mtx' + """ + match = re.search(r'(?:GPU|CPU)_(.*)', param_string) + if match: + extracted = match.group(1) + # Replace the final trailing '_mtx' with '.mtx' + if extracted.endswith('_mtx'): + return extracted[:-4] + '.mtx' + return extracted + return param_string + +def run_tests_and_parse(executable, test_filter): + command = [executable, f"--gtest_filter=*{test_filter}*"] + print(f"Running: {' '.join(command)}") + + process = subprocess.run(command, capture_output=True, text=True) + + results = [] + current_test = None + + re_run = re.compile(r'\[\s*RUN\s*\]\s+(.*)') + re_time = re.compile(r'Solve time:\s*([0-9.]+)\s*ms') + re_bw = re.compile(r'Effective Bandwidth:\s*([0-9.]+)\s*GB/s') + re_end = re.compile(r'\[\s*(OK|FAILED)\s*\]') + + for line in process.stdout.splitlines(): + run_match = re_run.match(line) + if run_match: + full_test_name = run_match.group(1) + raw_param = full_test_name.split('/')[-1] + + # Clean up raw_param to get 'nos1.mtx', 'nos2.mtx', etc. + matrix_filename = extract_matrix_name(raw_param) + + current_test = { + 'matrix_file': matrix_filename, + 'solve_time_ms': None, + 'effective_bandwidth_gbps': None + } + continue + + if current_test: + time_match = re_time.search(line) + if time_match: + current_test['solve_time_ms'] = float(time_match.group(1)) + + bw_match = re_bw.search(line) + if bw_match: + current_test['effective_bandwidth_gbps'] = float(bw_match.group(1)) + + end_match = re_end.match(line) + if end_match: + if current_test['solve_time_ms'] is not None and current_test['effective_bandwidth_gbps'] is not None: + results.append(current_test) + current_test = None + + return results + +def main(): + parser = argparse.ArgumentParser(description="Parse GoogleTest performance metrics into YAML.") + parser.add_argument("--exe", default="./test_main.exe", help="Path to the googletest executable") + parser.add_argument("--filter", required=True, help="Test filter string (e.g., matrix_vector_product)") + args = parser.parse_args() + + results = run_tests_and_parse(args.exe, args.filter) + + if not results: + print("No test metrics found. Verify your executable path and filter.") + return + + datestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + output_filename = f"{args.filter}_{datestamp}.yaml" + + with open(output_filename, 'w') as f: + yaml.dump(results, f, sort_keys=False, default_flow_style=False) + + print(f"Successfully parsed {len(results)} tests.") + print(f"Results saved to: {output_filename}") + +if __name__ == "__main__": + main() From e69e2ac8198e6f1e052065fb11a5ac76408478af Mon Sep 17 00:00:00 2001 From: jsandham Date: Wed, 2 Sep 2026 00:37:28 -0400 Subject: [PATCH 2/2] Fix yaml-cpp windows build --- CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 65dfdba..c22f731 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,6 +28,13 @@ cmake_minimum_required(VERSION 3.25 FATAL_ERROR) project(linalglib LANGUAGES CXX) +if(MSVC) + # Keep the project and all fetched dependencies on the DLL-based MSVC runtime + # so that targets like yaml-cpp do not end up linked against /MTd while the + # executable is built against /MDd. + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>DLL") +endif() + set(CMAKE_CXX_STANDARD 17) option(ENABLE_COVERAGE "Build with code coverage support" OFF)