Dự án này tập trung vào việc so sánh hiệu năng của các mạng nơ-ron tích chập (CNN) khi chạy trên CPU và GPU, sử dụng các công nghệ song song hóa khác nhau.
Thư mục này chứa mã nguồn và các thử nghiệm so sánh hiệu năng của phép tích chập (convolution) khi chạy trên CPU và GPU. Các file chính bao gồm:
kernel.cu: Chứa các kernel CUDA cho phép tích chậpConvolutionalLayer.h: Định nghĩa lớp tích chậpPoolingLayer.h: Định nghĩa lớp poolingHelpers.h: Các hàm tiện ích và helperFilters.h: Định nghĩa các bộ lọc cho CNNguide.MD: Hướng dẫn sử dụng và biên dịch
Thư mục chứa phiên bản song song hóa của CNN sử dụng OpenMP. Các file chính:
Main.cpp: File chính chứa hàm main và logic chương trìnhlayer.h: Định nghĩa các lớp CNN và các hàm xử lýmnist.h: Định nghĩa cấu trúc dữ liệu và hàm xử lý cho tập MNISTCMakeLists.txt: File cấu hình CMake cho việc biên dịch
Thư mục chứa pipeline hoàn chỉnh để huấn luyện và đánh giá mô hình CNN trên MNIST sử dụng CUDA:
main.cu: File chính của chương trìnhlayer.cuvàlayer_c.h: Định nghĩa các lớp CNN và các hàm CUDAtest_real.cu: File test với dữ liệu thực tế- Các file trọng số đã huấn luyện:
weights_c1.bin,weights_s1.bin,weights_f.bin - Các file bias:
bias_c1.bin,bias_s1.bin,bias_f.bin - Các file ảnh test:
image.png,image copy *.png
Thư mục chứa tập dữ liệu MNIST:
train-images.idx3-ubyte: Ảnh huấn luyệntrain-labels.idx1-ubyte: Nhãn huấn luyệnt10k-images.idx3-ubyte: Ảnh kiểm thửt10k-labels.idx1-ubyte: Nhãn kiểm thử
Tài liệu nghiên cứu mô tả chi tiết về các phương pháp song song hóa CNN và kết quả thử nghiệm.
- CUDA Toolkit (phiên bản mới nhất)
- OpenMP
- CMake (phiên bản 3.0 trở lên)
- Compiler hỗ trợ C++11
- GPU hỗ trợ CUDA
Mỗi thư mục con đều có file CMakeLists.txt riêng. Để biên dịch:
mkdir build
cd build
cmake ..
makeDự án này nhằm:
- So sánh hiệu năng của phép tích chập trên CPU (sử dụng OpenMP) và GPU (sử dụng CUDA)
- Đánh giá các phương pháp song song hóa khác nhau
- Cung cấp một pipeline hoàn chỉnh để huấn luyện và đánh giá CNN trên MNIST
- Tối ưu hóa hiệu suất của các mô hình CNN thông qua việc song song hóa