Skip to content

About

RISC‑V implementation of masked sparse matrix–sparse matrix multiplication algorithms. Authored by Daniil Litvyakov and Arthur Kulik during time as laboratory assistants at UNN.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

129 Commits

Folders and files

Repository files navigation

Актуальная векторизованная версия MCA:

void _mspgemm_mca_parallel_vectorized(const sparseMtx<T>& A, const sparseMtx<T>& B, const sparseMtx<U>& M, sparseMtx<T>& C) {

Актуальная векторизованная версия HEAP:

inline void _mspgemm_heap_parallel_vectorized(const sparseMtx<int>& A, const sparseMtx<int>& B,

Тестовые матрицы: https://drive.google.com/file/d/1IGwGVefNt90q9l977yTW3p0unQdssD_o/view?usp=sharing
Их стоит поместить в папку graphs, чтобы работали тесты make mxm_all_test и остальные тесты из Makefile

Инструкция для сборки:

make - стандартная сборка
make rvv - RISC-V сборка с MCA_LMUL=1 (кросскомпиляция)
make rvv-native - RISC-V сборка с MCA_LMUL=1 на RISC-V узле
make rvv|rvv-native MCA_LMUL=1|2|4 - RISC-V сборка с MCA_LMUL=1,2,4

Инструкция для запуска:

make test - собрать проект и запустить тесты mxm, triangle и k-truss на netherlands_osm.mtx
./build/mxm_test ./graphs/netherlands_osm.mtx log.txt - запустить тест умножения матриц
./build/triangle_test ./graphs/netherlands_osm.mtx log.txt - запустить тест подсчёта треугольников
./build/k_truss_test ./graphs/netherlands_osm.mtx log.txt 3 - запустить тест k-truss (последний аргумент — значение k)
make mxm_test|triangle_test|k_truss_test - запустить тест на SMALL_GRAPHS из Makefile
make mxm_all_test|triangle_all_test|k_truss_all_test - запустить тест на ALL_GRAPHS из Makefile

*log.txt пока что не используется.

About

RISC‑V implementation of masked sparse matrix–sparse matrix multiplication algorithms. Authored by Daniil Litvyakov and Arthur Kulik during time as laboratory assistants at UNN.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages