Multiple GPUs and Python#

Partial list of projects that @bkj worked on from Nov 2020 - May 2021.

If you have any questions about these projects, please open an issue tagging @bkj.

Documentation#

Applications#

  • mgpu_sssp - MultiGPU SSSP implementation, using thrust + NCCL. Equivalent to VN HIVE workload.

  • cuda_ppr - CUDA PPR (Parallel PageRank Nibble) implementation, using thrust

  • application_classification

    • branch:master - re-worked single GPU implementation of application classification

    • branch:dev/mgpu - MGPU implementation using thrust. Performance issues because of blocking cudaMalloc and cudaFree

    • branch:dev/mgpu_manual_reduce - changes to dev/mgpu to remove performance issues by doing manual memory management. A little ugly, so haven’t merged to dev/mgpu or master yet.

  • graphblas_proj

    • branch:dev/mgpu2 – MGPU implementation of graph_projections HIVE workload

Python bindings#

  • python_essentials - Python wrappers for essentials using pybind11 and pytorch

    • Works, but may be difficult to install given version (in)compatabilities between pytorch, cudnn, and cuda versions

Scratch#

  • bkj/essentials - workspace for all of my essentials experiments

    • I think most everything interesting here has been merged to gunrock/essentials

  • mgpu_test

    • Scratch repository for experiments w/ MGPU filters in thrust

Unstable#

  • https://github.com/cfld/cugraph

    • Fork of cugraph showing how to bind to essentials APIs

    • Needs to be updated to work w/ current versions of cugraph and `essentials

  • https://github.com/bkj/async-queue-paper (private – can give access)

    • Scratch repository for async cuda experiments

  • https://github.com/cfld/cuda-async-bfs (private – can give access)

    • Minimal implementation of async BFS in CUDA