Như trong phần trước, tôi đã giới thiệu sơ qua về khái niệm Deep Learning và khả năng to lớn của việc sử dụng kiến trúc của GPU trong xử lý song song phục vụ tăng tốc cho quá trình học tập và rèn luyện trí tuệ nhân tạo của máy tính, đặc biệt với Deep Learning và Neuron Networks. Trong phần tiếp theo này, tôi sẽ giới thiệu qua về các nền tảng phần cứng hiện thời cho việc xử lý các thuật toán song song cùng với lựa chọn của mình.Với mấy ông chỉ coding phần mềm thương mại và mobile, có lẽ việc khó khăn nhất khi bắt đầu làm về Deep learning nói riêng và Machine Learning nói chung là chọn được đúng nền tảng đi kèm phần cứng hỗ trợ tính toán song song mạnh. Đương nhiên, ai cũng nghĩ thế. Có vài hướng đi cơ bản với mục đích tăng thật nhiều core xử lý cùng lúc như sau:
01.Intel Xeon Phi
với khẩu hiệu: Thêm nhân, thêm sức mạnh (More Cores, More Performance)Xeon Phi ra đời là mở rộng của bo mạch chủ chạy Chip Intel, nhằm đưa thêm nhiều nhân xử lý co-processor vào hệ thống thông qua khe cắm mở PCI -Express. Intel đặt tên mỹ miều cho kiến trúc này là Intel MIC (Intel Many Integrated Core Architecture) nhưng bản chất là gắn thêm nhiều con CPU Xeon vào bản mạch rồi cắm vào khe PCI-E mà thôi
Hồi đầu chúng nó được đặt tên mã là hiệp sỹ (Knights) này nọ kiểu Knights Ferry, Knights Corner, Knights Land và Knights Hill. Sau này thì dồn lại về theo kiểu đánh số xe BMW có series 3, 5 và 7 tương ứng là 3100 series, 5100 series và 7100 series. Do bản chất vẫn là dây chuyền sản xuất Intel CPU nên số nhân cũng tương đối hạn chế, ví dụ như con mạnh nhất hiện giờ 7120D có 61 nhân, 512 SIMD units (Single Instruction, Multiple Dataset), 16GB RAM thừa kế kiến trúc cổ xưa Pentium (thời CPU cắm mobo kiểu cartridge???). Giá con Xeon Phi này đắt, tầm 4300 USD và đặc biệt là không có bán đại chúng cho người dùng thông thường. Tuy thế, nói gì thì nói, bản chất vẫn là intel x86 nên ace lập trình cũng chả phải học hành lại gì mấy, dùng luôn kỹ năng coding hiện tại thôi. Sở dĩ tôi đề cập đến Xeon Phi đầu tiên dù chưa được sờ vào so với 2 cái sau đây vì nó chính là các bộ xử lý trong chiếc siêu máy tính mạnh nhất hành tinh của chúng ta hiện giờ từ suốt 2013 đến giờ, chiếc Thiên Hà 2 (Tienhe 2) của Trung Quốc.
Thông tin thêm: Thiên Hà 2 bản chất là kết nối sâu của 16000 node tính toán, mỗi node là một con HPC với 2 Xeon CPU e5-2692 v2(đời Ivy Bridge), 3 card Xeon Phi loại serie 3, chỉ có 8GB RAM on-card và 64GB RAM hệ thống. Nhẩm nhanh cũng tầm 12000 USD cho mỗi node nếu cá nhân đi mua roài. Thiên Hà 2 có sức mạnh tính toán lý thuyết max là 54.9 PetaFLOPS còn thực tế thì chạy ở tầm 60% khoảng 34 PetaFLOPS.
Vị trí: Trung tâm siêu điện toán quốc gia, Quảng Đông, Trung Quốc.
Kiến trúc: 32,000 Intel Xeon E5-2692 12C tốc độ 2.200 GHz + 48,000 Xeon Phi 31S1P
Tiêu thụ điện: 17.6 MW (24 MW bao gồm cả làm mát)
Hệ điều hành: Kỳ Lân OS (Kylin Linux)
Bộ nhớ: 1,375 TiB (1,000 TiB CPU and 375 TiB coprocessor)[1]
Ổ cứng: 12.4 PB
Khả năng tính toán: 33.86 PFLOPS
Trị giá: 2.4 tỷ Nhân Dân Tệ (US$390 triệu)
Mục đích sử dụng: Mô phỏng, phân tích, và ứng dụng an ninh quốc phòng.
Túm lại là con Thiên hà 2 tốn điện vãi lúa.
02. OpenCL (Khronos Group)
Với khẩu hiệu kết nối phần mềm tới silicon (Connecting Software to Silicon, hơi phiêu tý he he)
Open Computing Language với ưu điểm chạy được đa nền tảng phần cứng CPU, GPU, DSP, FPGAs, cung cấp một giao diện API tiêu chuẩn cho việc xử lý đa nhiệm song song theo cả hai kiểu tác vụ hay dữ liệu (task-based or data-based). OpenCL được duy trì và phát triển bởi Khronos Group. Nguyên thuỷ xuất phát từ Apple nên được Apple cam kết và hỗ trợ tận răng với các thế hệ máy tính và hệ điều hành Mac OS X. Nền tảng phần cứng, phần mềm đứng đầu là AMD/ATI, là nhà sản xuất cả CPU lẫn GPU, đối tác chính của Apple . Tuy nhiên, OpenCL ra đời tương đối chậm, cùng với thư viện phần mềm tuy mở open source nhưng ì ạch, driver không ổn định, lib thì ít và thiếu vắng các cộng đồng lớn, OpenCL không phù hợp với newbie như tôi và tôi cũng võ đoán rằng cũng rất ít nhà nghiên cứu đi sâu được ngay dùng cho DL. Sau này, nếu có tham vọng đi sâu hơn thì OpenCL thực sự rất có tương lai.
Thông tin thêm: Khronos Group một tổ chức phi lợi nhuận của Mỹ thành lập năm 2000 ban đầu bởi khoảng 7-8 công ty gồm cả ATI, Intel, NVIDIA, SGI (Silicon Graphics) và Sun Microsystems. Đến giờ thì đã có tới xấp xỉ tầm 120 công ty tham gia thành viên, và khoảng hơn 50 thành viên “dự bị” theo chuẩn OpenCL.
03. CUDA (NVIDIA)
Với khẩu hiệu Nvidia Tăng tốc điện toán (Nvidia Accelerated Computing)
Thực ra môn CUDA này chỉ có 1 tay chơi và duy nhất là Nvidia, nhà sản xuất card màn hình và vi xử lý đồ hoạ (GPU) hàng đầu thế giới. Sự phổ biến của phần cứng, hỗ trợ mạnh về thư viện và phần mềm cùng với nhiều cộng đồng nghiên cứu và phát triển tiếng tăm trên thế giới như ở các đại học Standford , MIT, etc khiến cho hầu như không còn ai đứng làm đối thủ cạnh tranh phân khúc này. Một mình Nvidia thao túng, trong khi vẫn nhúng tay vào Khronos Group ở trên. Đó là lý do các card đồ hoạ GPU của NVIDIA luôn hỗ trợ cả OpenCL lẫn CUDA còn AMD/ATI chỉ có OpenCL mà thôi. CUDA cũng là nền tảng mà tôi lựa chọn. Bản thân Nvidia cam kết cao ngất cho việc này và các ông lớn đều thế cả mà.
Giá cả để trang bị NVIDIA GPU (đội xanh) không hề rẻ và có sức mạnh xử lý “cứng” như đội đỏ nhưng cũng rất sẵn có với đại chúng và nhiều mức độ chi tiền. Nvidia có nhiều dòng sản phẩm, từ rất cao cấp như Tesla với giá khủng hơn cả Xeon Phi ($5,000-$10,000), trung cấp Quadro từ vài trăm $ cho đến $5,000 và dòng phổ thông rẻ nhất GTX cho game thủ ở ngưỡng $100 – $1,000. Cho Deep Learning thông thường, độ chính xác FP không cần quá chính xác nên nếu tận dụng cho học tập và xử lý cơ bản, một hệ thống với card GTX mà hiệu năng cũng có thể cực khủng không thua kém gì các hệ thống lớn đắt tiền cả. Về cân nhắc lựa chọn hiệu năng PP (Price/Performance) cho hệ thống của mình, tôi sẽ chia sẻ với các bạn trong phần sau. Đây cũng là lý do mà nhiều researcher hay data scientist trên thế giới tự xây dựng HPC của mình với lựa chọn CUDA Nvidia GTX.