Bare Metal vs Kubernetes : Đào tạo phân tán với TensorFlow

Giới thiệu

Trong bài viết này, chúng tôi đánh giá hiệu suất mở rộng khi đào tạo CheXNet trên GPU Nvidia V100 SXM2 trong máy chủ Dell EMC C4140 bằng hai phương pháp được sử dụng trong các trung tâm dữ liệu hiện đại. HPC “Bare Metal” truyền thống với môi trường do Anaconda xây dựng và hệ thống được đóng gói với bộ chứa Nvidia GPU Cloud (NGC) chạy trong môi trường Kubernetes tại chỗ.

Bare Metal
Hệ thống Bare metal là một cụm HPC truyền thống, nơi các ngăn xếp phần mềm được cài đặt trực tiếp trên đĩa cứng cục bộ hoặc giá treo mạng dùng chung. Quản lý môi trường phần mềm được thực hiện bởi quản trị viên hệ thống. Người dùng bị hạn chế xây dựng phần mềm trong hệ thống tệp chia sẻ /home. Mã người dùng được lên lịch hàng loạt bởi trình quản lý khối lượng công việc Slurm.

Kubernetes
Hệ thống Kubernetes (K8s) của chúng tôi sử dụng các bộ chứa NGC của Nvidia để cung cấp tất cả các điều kiện tiên quyết về phần mềm cần thiết, cấu hình môi trường, v.v. Quản trị viên hệ thống chỉ cài đặt hệ điều hành cơ sở, trình điều khiển và k8. Các thùng chứa dựa trên docker này có thể được tải xuống từ NGC trong quá trình chạy hoặc được lưu trữ trong sổ đăng ký cục bộ. K8s xử lý quản lý khối lượng công việc, tính sẵn có của tài nguyên, khởi chạy các công việc phân tán và mở rộng quy mô theo yêu cầu.


Phiên bản phần mềm

Bộ chứa NGC nvcr.io/nvidia/tensorflow:19.06- py3 Phiên bản Conda env
khung TenorFlow 1.13.1 TenorFlow 1.12.0
Horovod 0.15.1 0.16.1
Bộ KH&ĐT OpenMPI 3.1.3 OpenMPI 4.0.0
CUDA 10.2 10.1
Trình điều khiển CUDA 430.26 418.40.04
NCCL 2.4.7 2.4.7
CUDNN 7.6.0 7.6.0
con trăn 3.5.2 3.6.8
Hệ điều hành Ubuntu 16.04.6 RHEEL 7.4
GCC 5.4.0 7.2.0

Bảng 1


Trường hợp sử dụng trong thế giới thực: CheXNet

Như đã giới thiệu trước đây, CheXNet là mô hình trợ lý bác sĩ X-quang AI sử dụng DenseNet để xác định tối đa 14 bệnh lý từ một hình ảnh X-quang ngực nhất định. Một số phương pháp đã được khám phá để mở rộng quy mô đào tạo một mô hình có thể hoạt động tốt bằng hoặc tốt hơn CheXNet-121 ban đầu với ResNet-50 thể hiện lời hứa về cả khả năng mở rộng và tăng độ chính xác đào tạo (AUROC tích cực). Các tác giả đã chứng minh khả năng mở rộng trên các hệ thống CPU, tuy nhiên, chúng tôi quan tâm đến việc khai thác tính song song của GPU để đẩy nhanh quá trình đào tạo. Dell EMC PowerEdge C4140 cung cấp cả mật độ và hiệu suất với bốn GPU Nvidia V100 trong cấu hình SXM2.


Thông số kỹ thuật phần cứng

Hệ thống kim loại trần Hệ thống Kubernetes
Nền tảng PowerEdge C4140 PowerEdge C4140
CPU 2 x Intel® Xeon® Gold 6148 @2.4GHz 2 x Intel® Xeon® Gold 6148 @2.4GHz
Kỉ niệm 384GB DDR4 @ 2666MHz 384GB DDR4 @ 2666MHz
Kho Nước bóng NFS
GPU V100-SXM2 32GB V100-SXM2 32GB
Hệ điều hành RHEL 7.4x86_64 CentOS 7.6
Nền tảng Linux 3.10.0-693.x86_64 3.10.0-957.21.3.el7.x86_64
Mạng Mellanox EDR InfiniBand Mellanox EDR InfiniBand

(IP qua IB)

Bảng 2


Hiệu suất

Thông lượng hình ảnh, được đo bằng hình ảnh mỗi giây, khi đào tạo CheXNet được đo bằng GPU 1, 2, 3, 4 và 8 trên 2 nút C4140 trên cả hai hệ thống được mô tả trong Bảng 2. Thông số kỹ thuật của lần chạy bao gồm kiến ​​trúc mô hình, đầu vào dữ liệu, v.v. được trình bày chi tiết trong bài viết này  . Hình 1 cho thấy so sánh hiệu suất đo được trên hệ thống Kubernetes và hệ thống bare metal.

 SLN318899_en_US__1hình ảnh(12054)
Hình 1: Chạy đào tạo CheXNet trên K8s vs Bare Metal


Tóm lược

Hệ thống kim loại trần cho thấy hiệu suất tăng 8% khi chúng tôi mở rộng quy mô lên 8GPU. Tuy nhiên, sự khác biệt trong thiết kế của kiến ​​trúc hệ thống có thể gây ra sự khác biệt nhỏ về hiệu suất này, ngoài đối số về thùng chứa và kim loại trần. Hệ thống kim loại trần có thể tận dụng toàn bộ băng thông và độ trễ của kết nối InfiniBand thô và không phải xử lý chi phí chung được tạo bằng Mạng xác định bằng phần mềm, chẳng hạn như mạng flannel. Cũng có trường hợp hệ thống K8s đang sử dụng IP qua InfiniBand, điều này có thể làm giảm băng thông khả dụng.
Những con số này có thể khác nhau tùy thuộc vào khối lượng công việc và các kiểu giao tiếp được xác định bởi loại ứng dụng đang chạy. Trong trường hợp xảy ra sự cố phân loại hình ảnh, tốc độ giao tiếp xảy ra giữa các GPU cao và do đó có tỷ lệ trao đổi cao. Tuy nhiên, việc sử dụng một cách tiếp cận này hay cách tiếp cận khác phụ thuộc vào nhu cầu của khối lượng công việc. Mặc dù hệ thống dựa trên Kubernetes của chúng tôi có một hình phạt hiệu suất nhỏ, ~8% trong trường hợp này, nhưng nó giúp người dùng và quản trị viên không phải thiết lập thư viện, cấu hình, môi trường và các phần phụ thuộc khác. Cách tiếp cận này trao quyền cho các nhà khoa học dữ liệu làm việc hiệu quả hơn và tập trung vào giải quyết các vấn đề kinh doanh cốt lõi như sắp xếp dữ liệu và xây dựng mô hình.