cuElim

使用CUDA统一内存实现GF2域GF256域和素域上的矩阵乘法和高斯消元无需考虑显存大小。

使用说明

加入到现有项目

  1. include文件夹中的所有头文件添加到现有项目中。

  2. 在需要使用gpu函数的地方引用cuelim.cuhcuelim_m4ri.cuhGF2域上高斯消元接口cuelim_m4rie.cuhGF256域上高斯消元接口

使用当前项目

  1. 安装依赖

    1. C++ CUDA CMake ...
    2. GoogleTest
    3. GoogleBenchmark
  2. 构建项目

    mkdir build && cd build
    cmake ..
    make -j  # 同时编译多个目标
    ctest  # 或make test 执行所有测试
    
  3. 运行可执行文件

    ./cuelim  # 执行主程序
    ./test/target  # 执行特定测试
    ./benchmark/target  # 执行特定性能测试
    

功能简介

  • ElimResult:存储高斯消元的结果,包含秩、主元行(进行行交换前的位置)、主元列。

  • gf2::MatGF2储存GF2矩阵每个uint64_t储存64个元素单个uint64_t中元素从低位到高位排列。

  • gf2::ElimResult gf2::MatGF2::gpu_elim():高斯消元。

  • gf256::MatGF256存储GF256矩阵每个uint64_t储存8个元素单个uint64_t中元素从低位到高位排列。

  • gf256::ElimResult gf256::MatGF256::gpu_elim(const gf256::GF256 &gf):进行高斯消元

  • gfp::MatGFP储存GF65521矩阵每个uint32_t储存1个元素

  • gfp::ElimResult gfp::MatGFP::gpu_elim():进行高斯消元

  • size_t gpu_mzd_elim(mzd_t *A)m4ri接口

  • size_t gpu_mzed_elim(mzed_t *A)m4rie接口

Description
No description provided
Readme 76 KiB
Languages
Cuda 94.7%
CMake 3%
C++ 2.3%