GPU-TopK 项目使用教程
gpu-topkEfficient Top-K implementation on the GPU项目地址:https://gitcode.com/gh_mirrors/gp/gpu-topk
1. 项目的目录结构及介绍
gpu-topk/
├── external/
│ └── cub/
├── src/
│ ├── bitonic_topk.cu
│ ├── radix_select_topk.cu
│ └── sort_topk.cu
├── test/
│ ├── test_bitonic_topk.cu
│ ├── test_radix_select_topk.cu
│ └── test_sort_topk.cu
├── .gitignore
├── LICENSE
├── Makefile
└── README.md
- external/: 包含外部依赖库,如
cub/
。 - src/: 包含项目的主要源代码文件,包括三种不同的 Top-K 算法实现:
bitonic_topk.cu
: 基于双调排序的 Top-K 算法。radix_select_topk.cu
: 基于基数排序的 Top-K 算法。sort_topk.cu
: 基于全排序的 Top-K 算法。
- test/: 包含测试文件,用于验证各种 Top-K 算法的正确性:
test_bitonic_topk.cu
test_radix_select_topk.cu
test_sort_topk.cu
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目许可证文件。
- Makefile: 编译和测试的 Makefile 文件。
- README.md: 项目说明文档。
2. 项目的启动文件介绍
项目的启动文件主要是 Makefile
,它包含了编译和运行测试的指令。以下是 Makefile
的主要内容:
all: test
test: test_bitonic_topk test_radix_select_topk test_sort_topk
test_bitonic_topk: src/bitonic_topk.cu test/test_bitonic_topk.cu
nvcc -o test_bitonic_topk src/bitonic_topk.cu test/test_bitonic_topk.cu
test_radix_select_topk: src/radix_select_topk.cu test/test_radix_select_topk.cu
nvcc -o test_radix_select_topk src/radix_select_topk.cu test/test_radix_select_topk.cu
test_sort_topk: src/sort_topk.cu test/test_sort_topk.cu
nvcc -o test_sort_topk src/sort_topk.cu test/test_sort_topk.cu
clean:
rm -f test_bitonic_topk test_radix_select_topk test_sort_topk
通过运行 make
命令,可以编译并运行所有测试文件。
3. 项目的配置文件介绍
项目没有显式的配置文件,所有的配置和参数传递主要通过命令行参数和代码中的硬编码实现。例如,在测试文件中,可以通过修改输入数组的大小和 Top-K 的值来调整测试参数。
例如,在 test_bitonic_topk.cu
中:
#define ARRAY_SIZE 1024
#define TOP_K 10
int main() {
int array[ARRAY_SIZE];
// 初始化数组...
bitonic_topk(array, ARRAY_SIZE, TOP_K);
// 验证结果...
}
可以通过修改 ARRAY_SIZE
和 TOP_K
的值来调整测试的输入和输出。
gpu-topkEfficient Top-K implementation on the GPU项目地址:https://gitcode.com/gh_mirrors/gp/gpu-topk