- gSuite is a flexible and framework independent benchmark suite for Graph Neural Networks at Inference level on GPUs.
- It allows researchers and engineers to build any desired GNN pipeline by just passing a few parameters to program.
- Choice can include using either a GNN framework (such as PyG and DGL) or our implementations, which are not dependent to any other ML libraries (such as PyTorch or Tensorflow).
Further information can be found in the paper:
Just execute the main script by passing a few parameters (see UI Parameters below).
Example usage:
python3 main.py --config "conf.json" --model "gcn" --dataset "cora"
--config
: (mandatory) local configuration file which includes default parameters
--gpu-id
: (optional) device id
--model
: (optional) GNN model
--dataset
: (optional) dataset to be processed
export PATH=/okyanus/progs/cuda/cuda-10.1/bin:$PATH
export CPATH=/okyanus/progs/cuda/cuda-10.1/include:$CPATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/okyanus/progs/cuda/cuda-10.1/lib64/
export PATH=/usr/local/cuda-8.0/bin:$PATH
export CPATH=/usr/local/cuda-8.0/include:$CPATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/local/cuda-8.0/lib64/
nvprof -f --analysis-metrics -o cudaDataLoader.nvprof ./cudaDataLoader.o --benchmark
nvcc -lcublas -std=c++11 -c -arch=compute_61 cuBlasUtil.cu Data_Util.cu CU_GCN_MP.cu CU_SpMM_GCN.cu cudaDataLoader.cu --compiler-options -fPIC
nvcc --shared -o libCU_SpMM_GCN.so cudaDataLoader.o cuBlasUtil.o Data_Util.o CU_SpMM_GCN.o --compiler-options -fPIC -std=c++11
indexSelect:
nvcc -g --cudart shared -lcublas_static -lculibos -ldl -lpthread -lcudart -lcudadevrt -std=c++11 -gencode arch=compute_61,code=compute_61 index_select.cu Data_Util.cu test/indexSelect_test.cu -o test/indexSelect_test.o
linear:
nvcc -g --cudart shared -lcublas_static -lculibos -ldl -lpthread -lcudart -lcudadevrt -std=c++11 -gencode arch=compute_61,code=compute_61 linear.cu cuBlasUtil.cu Data_Util.cu test/linear_test.cu -o test/linear_test.o
scatter (aggregation):
nvcc -g --cudart shared -lcublas_static -lculibos -ldl -lpthread -lcudart -lcudadevrt -std=c++11 -gencode arch=compute_61,code=compute_61 scatter_cuda.cu Data_Util.cu test/scatter_test1.cu -o test/scatter_test1.o
scatter (node degrees):
nvcc -g --cudart shared -lcublas_static -lculibos -ldl -lpthread -lcudart -lcudadevrt -std=c++11 -gencode arch=compute_61,code=compute_61 scatter_cuda.cu Data_Util.cu test/scatter_test2.cu -o test/scatter_test2.o