Development¶
This guide is for contributors extending the solver: build system, adding new kernels or solvers, and running the test suite.
Build System¶
Dual build approach for flexibility: - Makefile: Primary build for CUDA/MPI binaries - CMake: Testing framework with Google Test
# Release build (default)
make
# Debug build with GPU debugging (-g -G)
make BUILD_TYPE=debug
# Build specific targets
make cg_solver_mgpu_stencil
make generate_matrix
# Run tests
cd tests && mkdir build && cd build
cmake .. && make && ./test_runner
Adding Features¶
- New SpMV kernel: Implement in
src/spmv/, register inget_operator() - New solver: Add to
src/solvers/, create entry point insrc/main/ - Performance metrics: Extend
benchmark_stats_mgpu_partitioned.cu