diff --git a/README.md b/README.md index 3b70c79..58f867b 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # cuElim -使用统一内存实现gf2^8域和素域上的矩阵乘法和高斯消元,无需考虑显存大小. +使用CUDA统一内存实现GF2域,GF256域和素域上的矩阵乘法和高斯消元,无需考虑显存大小。 ## 使用说明 -### 在现有项目中使用 +### 加入到现有项目 -1. 将`include`文件夹中的所有头文件添加到现有项目中. +1. 将`include`文件夹中的所有头文件添加到现有项目中。 -2. 在需要使用gpu函数的地方引用`cuelim.cuh` +2. 在需要使用gpu函数的地方引用`cuelim.cuh`或`cuelim_m4ri.cuh`(GF2域上高斯消元接口)或`cuelim_m4rie.cuh`(GF256域上高斯消元接口)。 ### 使用当前项目 @@ -37,9 +37,16 @@ ## 功能简介 -- `gf256::MatGF256`:存储GF2^8矩阵,数据结构已经改为与m4rie一致,从低位到高位排列 -- `gf256::ElimResult`:存储高斯消元的结果,包含秩、主元行(进行行交换前的位置)、主元列 +- `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矩阵,使用32位存储一个元素 +- `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接口