# dataflow-gpu **Repository Path**: mr-x2021/dataflow-gpu ## Basic Information - **Project Name**: dataflow-gpu - **Description**: Dataflow System built on GPU environment (NVIDIA Ampere A100), specific for pagerank and vit tasks. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-01 - **Last Updated**: 2025-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dataflow-gpu ## 项目简介 `dataflow-gpu` 是一个基于 GPU 加速的图计算项目,主要实现了 PageRank 算法的多种并行版本,包括同步迭代、异步迭代和蒙特卡洛方法,并支持多 GPU 和 OpenMP 混合并行加速。该项目还包含了基于 Vision Transformer (ViT) 的图像分类实现,使用 PyTorch 和 TensorFlow 框架进行多 GPU 训练。 ## 功能模块 ### 1. **PageRank 算法实现** - **同步迭代方法** - 串行实现 - OpenMP 并行实现 - CUDA GPU 加速实现 - **异步迭代方法** - 串行实现 - OpenMP 并行实现 - CUDA GPU 加速实现 - **蒙特卡洛方法** - 串行实现 - OpenMP 并行实现 - CUDA GPU 加速实现 - **多 GPU + OpenMP 混合并行** - 支持多卡并行计算 ### 2. **Vision Transformer (ViT) 图像分类** - 基于 PyTorch 和 TensorFlow 的 Vision Transformer 模型实现 - 支持 ImageNet-21K 预训练模型 - 多 GPU 分布式训练支持 - 自定义数据集加载器和数据增强 - 混合精度训练和分布式训练工具 ## 项目结构 ``` . ├── pagerank/ # PageRank 算法实现 │ ├── dataflow/ # 基于 GPU 的 PageRank 实现 │ │ ├── src/ # C++/CUDA 源码 │ │ ├── run.sh # 运行脚本 │ │ └── readme.md # 使用说明和实验结果 │ └── tensorflow/ # TensorFlow 实现的 PageRank │ ├── PR.py # 基础 PageRank 实现 │ ├── PR-GPU.py # GPU 加速实现 │ └── README.md # TensorFlow 实现说明 │ ├── VIT_for_Dataflow/ # PyTorch 实现的 Vision Transformer │ ├── train_multi_gpu.py # 多 GPU 训练脚本 │ ├── vit_model.py # ViT 模型定义 │ └── utils.py # 工具函数和数据处理 │ ├── VIT_for_TF/ # TensorFlow 实现的 Vision Transformer │ ├── train1_m.py # 多 GPU 训练脚本 │ ├── vit_model.py # ViT 模型定义 │ └── utils1_gpt1.py # 数据加载和预处理工具 │ ├── speed.py # 性能对比脚本(DataFlow vs TensorFlow) └── README.md # 项目简介 ``` ## 运行环境 ### 硬件要求 - GPU 支持 CUDA 的 NVIDIA 显卡(用于 GPU 加速) - 多核 CPU(用于 OpenMP 并行计算) ### 软件依赖 - **PageRank 实现** - CUDA Toolkit - C++ 编译器(如 g++) - OpenMP - **TensorFlow 实现** - TensorFlow >= 2.4.0 - Python >= 3.6 - **PyTorch 实现** - PyTorch >= 1.8.0 - torchvision - CUDA 支持(可选) ## 使用说明 ### PageRank 运行方法 1. **预处理图数据** ```bash python init_graph.py ``` 2. **运行 PageRank 算法** ```bash ./pagerank -f -n -e -c ``` 3. **查看结果** ```bash python rank_show.py ``` 4. **性能对比** ```bash python speed.py ``` ### Vision Transformer 训练方法 #### PyTorch 实现 ```bash python train_multi_gpu.py --world-size 2 --rank 0 --dist-url tcp://127.0.0.1:23456 ``` #### TensorFlow 实现 ```bash python train1_m.py ``` ## 实验结果 - **PageRank** - 支持 Stanford、Google、LiveJournal 等大型图数据集 - GPU 加速显著提升性能,多 GPU 混合并行进一步优化计算效率 - 蒙特卡洛方法在大规模图上表现更优 - **Vision Transformer** - 支持 ImageNet-21K 预训练模型 - 多 GPU 分布式训练加速明显 - 支持混合精度训练,提升训练速度 ## 许可证 本项目使用 MIT 许可证,请参阅 [LICENSE](LICENSE) 文件以获取详细信息。 ## 联系方式 如需进一步帮助,请联系项目维护者或提交 issue。