Hiển thị các bài đăng có nhãn Framework. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Framework. Hiển thị tất cả bài đăng

Thứ Ba, tháng 4 12, 2016

Bộ thư viện NVIDIA GPU REST Engine (GRE)

GPU thực chất cũng là một bộ vi xử lý song song cực kỳ hiệu quả có thể cung cấp dịch vụ có độ trễ thấp đáp ứng các yêu cầu gửi riêng rẽ không trùng lắp.



NVIDIA GPU REST Engine (GRE) là một cấu phần quan trọng cho các nhà phát triển xây dựng các dịch vụ web có độ trễ thấp. GRE bao gồm một máy chủ đa luồng HTTP cung cấp dịch vụ web RESTful và phân tải các yêu cầu đó một cách hiệu quả trên nhiều bộ xử lý đồ họa NVIDIA. Tổng thời gian đáp ứng cơ bản sẽ chỉ phụ thuộc vào mức độ nhu cầu tính toán của người dùng, còn bản thân GRE không làm nặng thêm mấy và còn có thể giải quyết các yêu cầu rỗng (null-request) dưới 10 micro giây.



Các dịch vụ web trên nền tảng GRE nhận yêu cầu được gửi đến, tìm nạp dữ liệu đầu vào và lập lịch lượng tử cho các đầu việc xếp trên một hàng đợi theo phương thức dịch vụ không đồng bộ. Một luồng xử lý riêng biệt dành cho quản lý công việc trên mỗi GPU và đảm bảo rằng tất cả các GPU trong hệ thống được cấp liên tục các yêu cầu từ hàng đợi không đồng bộ.

GRE sử dụng một kỹ thuật gọi là "độ trễ ẩn" cho hiệu năng thông lượng cao. Tức là, khi các dữ liệu cho một yêu cầu cụ thể đang được xử lý bởi một GPU thì cùng lúc đó, dữ liệu cho các yêu cầu tiếp theo được chuẩn bị và kết quả từ các yêu cầu trước đó nữa được trả về cho bên gửi yêu cầu. Tất cả diễn ra song song. Toàn bộ hàng đợi được sắp xếp một cách hiệu quả nhất có thể. Ở rất nhiều tình huống, GPU không bao giờ phải chờ đợi dữ liệu đầu vào.

Các nhân xử lý hình ảnh Nvidia (ICE: Nvidia Image Compute Engine) là điển hình cho thể thức vi dịch vụ cung cấp bởi GRE thông qua khả năng tăng tốc GPU trong xử lý và điểu chỉnh kích cỡ hình ảnh dành riêng cho dịch vụ web và các ứng dụng di động.

Các lập trình viên có thể tự xây dựng các dịch vụ này và tăng tốc theo cùng phương thức.  Khởi đầu với GRE, LTV có thể tập trung vào việc thực hiện các thuật toán cho các dịch vụ đang cần được tăng tốc. LTV sẽ phải xác định được các dữ liệu cần thiết gửi cho thuật toán của mình qua URL là gì. Sau đó, LTV chỉ cần tạo các hàm số chạy trên dữ liệu đó. Ví như bạn định tiến hành xử lý âm thanh nào đó, bạn có thể chỉ cần viết một hàm GPU hoặc gọi một chức năng thư viện tăng tốc GPU hiện tại từ các bộ thư viện nguyên mẫu NPP (NVIDIA Performance Primitives) để có mẫu đầu vào cùng với một vài thông số điều chỉnh rồi áp dụng các chuyển đổi.

Bản thử nghiệm bộ công cụ GRE hiện giờ đã cho phép bạn xem xét thành phần tạo lịch và chạy thử các thuật toán riêng của bạn. Bản thử nghiệm này đã gồm sẵn một máy chủ HTTP đơn giản được viết bằng ngôn ngữ Go kèm theo một dịch vụ phân loại hình ảnh cung cấp bởi thư viện học sâu cuDNN (Deep Learning). Các bản GRE thử nghiệm này nhằm đưa ra demo sớm ở góc độ khái niệm học thuật là chính.

(Theo Google Translate có hiệu đính qua qua bằng mắt người từ bản tin cộng đồng Nvidia Developers: https://developer.nvidia.com/gre)

Thứ Bảy, tháng 1 30, 2016

HPC (4) - Bonus - Nvidia GPU, tại sao lại chọn Kepler?

Như ở phần HPC build 3, tôi đã thống nhất lựa chọn dòng GTX 780Ti, tên mã vi kiến trúc Kepler (Kepler Microarchitecture GK110B) với số nhân CUDA lớn nhất vào thời điểm đầu năm 2015, 2880 CUDA cores. Mãi sau này, nó bị soán ngôi bởi Titan X với 3072 CUDA cores.
Chuyện thì dài nhưng  túm lại tại thời điểm dựng máy, tôi có thể lựa chọn 3 dòng GPU của Nvidia như sau: (Nvidia nhộn phết khi đặt mỗi tên dòng kiến trúc là tên các nhà khoa học lỗi lạc của thế giới)
Fermi: GeForce  400, 500 series, ra đời khoảng năm 2010, lúc này CUDA mới thực sự được chú ý tới vì GPU thay vì chỉ làm nhiệm vụ hiện thị hình ảnh thì giờ có thể được sử dụng trong tính toán. Khẩu hiệu lúc này là Giải pháp tính toán hình ảnh cách mạng (The Revolutionary Visual Computing Solution)  Chiếc card tôi có đại diện cho dòng này là con Quadro FX5600 1.5GB, băng thông 384-bit với 192 CUDA cores. Giá thành xuất xưởng siêu khủng $2,999. Giờ thì nó đang bị lỗi artifact, chập văn chờn, theo kinh nghiệm là phải cho vào lò nướng.
Kepler: Nvidia tuyên bố xanh rờn: Kepler là kiến trúc nhanh nhất, hiệu năng nhất thế giới cho HPC. (Kepler - The World's Fastest, Most Efficient HPC Architecture). Đến nay, ngay cả khi đã có thế hệ mới thay thế, tuyên bố này phần nào vẫn đúng trong các dòng GPU của Nvidia sản xuất. Đại diện dòng này tôi sắm 4 chiếc card siêu độ cho dân OC EVGA GTX 780 Ti Classified, 3GB, băng thông 384-bit với 2880 CUDA cores.  Giá xuất xưởng là $799. Tốn một mớ tiền x 4 vào đây. Và chúng sẽ là bạn đồng hành trải nghiệm qúa trình DL của tôi suốt thời gian ban đầu này.
Maxwell: Đây cũng là một kiến trúc được Nvidia quảng bá đổi mới nhưng thực ra, cá nhân tôi cho rằng mới mà không mới so với Kepler trước đây. Nó cũng không tạo ra cuộc cách mạng gì lớn giống như bước chuyển sang Kepler từ Fermi. Bản chất tập trung vào chỉnh sửa tối ưu tý chút đồng thời thiên về hỗ trợ kết xuất hình ảnh lớn cùng với xu thế độ phân giải siêu cao 4K hiện nay (VRAM nhiều lên hẳn). Vì thế khẩu hiệu đận này cũng đơn sơ:  GPU tân tiến nhất qủa đất (The World's Most Advance GPU). Đại diện cho dòng này tôi mua chiếc ASUS GTX 980 Strix, với 4GB, băng thông 256-bit với 2048 CUDA cores. Gía thành xuất xưởng là $599. GTX 980 được tôi lắp nâng cấp trên MacPro dành cho các tác vụ kiểm thử các vòng lặp tính toán (computing loop) đơn giản bên ngoài trong khi máy HPC kia bận rộn tính toán.
Chỉ với những thông điệp "ngầm" trên đủ thấy Kepler có vẻ mới chính là dòng kiến trúc chip chủ đạo mà Nvidia kỳ vọng tương đối lớn trong lĩnh vực điện toán HPC.
Trước khi xem xét cấu trúc phần cứng từng dòng GPU, chúng ta đều thấy trong điện toán song song của NVIDIA, CUDA là con số rất đáng quan tâm. Chúng ta hay đánh đồng CUDA  với số nhân xử lý GPU có trong một con card. Ví dụ như con GTX 780 Ti mà tôi dùng có đến 2880 CUDA cores, tức là có thể chạy 2880 nhân cùng lúc. Điều này giúp đơn giản hoá việc so sánh sức mạnh và tiên liệu năng lực tính toán của card nhưng kỳ thực không hoàn toàn chính xác. CUDA bản chất là một platform và thư viện phần mềm trên C/C++ với các API đề phục vụ các nhà phát triển có thể lập trình xử lý song song thông qua truy xuất trực tiếp tới tập lệnh và các lõi tính toán của GPU. Khả năng này còn được gọi là GPGPU (General-Purposed GPU). Các lập trình viên, thông qua thư viện CUDA để có thể điều khiển GPU nhằm và các tác vụ tính toán thông thường như serial CPU. Trong tổng thể 1 PC, luồng xử lý dùng CUDA có thể tóm tắt như trong hình dưới đây:
CUDA_processing_flow_(En)
 Với dòng Fermi, GPU thường có khoảng 3 tỷ chíp bán dẫn transistors, công nghệ 40nm là chính, tổ chức thành các tập xử lý dòng Streaming Multiprocessor gồm 32 CUDA mỗi tập. Về lý thuyết, khả năng tính toán SP của Fermi GPU (theo GFLOPS) là 2 (lệnh theo FMA mỗi chu kỳ, Fused Multiply-Add kiểu AxB+C) x số lượng nhân CUDA x tốc độ chip đổ bóng (in GHz). Còn về tính toán dấu chấm động FP64 thì khả năng giảm đi 1/2. (điều này đúng trên Tesla và Quadro chứ trên GTX, Nvidia làm thọt đi còn 1/8 thôi, quá láo).  Đặc trưng của Fermi là cơ bản nhân CUDA nào cũng có khả năng thực hiện 2 phép tính SP32 hoặc 1 phép tính FP64 trong 1 xung nhịp clock. Vì vậy, hiệu năng sẽ giảm khi không cần tính toán đến như thế trên tất cả các cores và khiến cho lượng tiêu thụ điện dòng Fermi rất khủng, đồng thời, có thể đun nước sôi pha trà với lượng nhiệt của dòng card này. :D
Fermi
Cũng với lý đó, Kepler ra đời sau đặt nặng hiệu năng tính toán và lượng năng lượng tiêu thụ hơn. Sản xuất với công nghệ 28nm, Con GK110 trong GTX 780 Ti có đến 7,1 tỷ chíp bán dẫn, gấp hơn 2 lần đời Fermi. Kepler ngoài các thế mạnh cũ thì cũng được tích hợp một loạt tính năng mới phục vụ cho điện toán song song như SMX (NeXt generation Streaming Multiprocessor), DP (Dynamic Parallelism), Hyper-Q MPI, GPUDirect... Có điều kiện tôi, sẽ đi sâu hơn về các tập kiến trúc mới này của Kepler riêng. Ở Kepler, CUDA Core vẫn có năng lực tính toán SP32 như trước, tức là 2 FMA mỗi chu kỳ nhưng không còn cõng phép tính FP64 mỗi nhân nữa mà thêm nhân tính toán FP64 riêng. Tỷ lệ tiêu chuẩn trên dòng cao cấp Titan Black, hay 780 Ti là 3:1 tức cứ 3 CUDA cores có 1 FP64(DP Unit màu cam). Ở các Kepler khác thì 24:1. Chính vì thế mà Kepler tiêu thụ điện lẫn toả nhiệt đã ít đi rất nhiều nếu so cùng năng lực tính toán ở dòng Fermi.

Con 780 Ti của tôi có 2880 CUDA Cores, tức là có 2880/3=960 DP Unit dùng cho tính toán FP64, hiệu năng FP64 của nó sẽ là 960 GFLOPS.

Kepler

Sang dòng chip hiện thời Maxwell, kiến trúc tương tự như Kepler nhưng NVIDIA  bỏ hẳn luôn nhân tính toán FP64. Toàn bộ xử lý FP64 được đẩy sang 1 core khác là Texture Mapping Unit (TMU), tỉ lệ là CUDA/TMU là 32/1  Về năng lực SP trên CUDA vẫn tương tự Kepler và Fermi nhưng FP64 thì giảm tương đối, còn lại khoảng  1/32 khả năng SP32. Chính vì thế, năng lực FP64 được xem rất tồi và kém hơn hẳn so với Kepler. Số lượng bán dẫn cũng giảm xuống còn 5.2 tỷ transistorsVí như con GTX 980 hàng đầu giờ chỉ có 128 TMU, tương đương với hiệu năng FP64 là 128 GFLOPS, chỉ bằng ~ 1/8 chú GTX 780 Ti của tôi. Được cái, thế này thì đỡ tốn điện đi nhiều đấy.

maxwell-gm-204-top-level-diagram

Với 3 dòng trên, Maxwell sẽ là kiến trúc duy nhất không có dòng siêu hi-end Tesla tăng tốc tính toán mà chỉ dùng cho dạng Tesla Grid và vGPU (Virtual GPU: card đồ hoạ ảo). Chiếc GPU Nvidia Tesla khủng nhất hành tinh đến tận giờ là chiếc K80 (K thì rõ ràng là Kepler rồi nhá), với 2 GPU GK210, 2x2496 = 4992 CUDA cores và VRAM siêu khủng 24GB.

TK80_575px

Như vậy, cho đến giờ, dòng Kepler vẫn là dòng chủ đạo số 1 trong các hệ thống HPC. Chiếc siêu máy tính Titan, xếp hạng số 2 thế giới nhưng là số 1 trong nền tảng CUDA hiện giờ cũng dùng Kepler, với 2688 CUDA (cùng nhân GTX 780). Vì thế Kepler cũng là lựa chọn hàng đầu đa mục đích cho chiếc HPC của tôi. Như ở phần HPC build 3, các bạn cũng biết tôi đã chọn lắp 4 chiếc card GPU EVGA GTX 780 Ti. Đây là một trong những dòng đỉnh cao nhất của Kepler mà Nvidia sản xuất dành cho game thủ được EVGA chế tác riêng và đã OC Ready. Những thông số cơ bản dưới đây, đặc biệt được bôi đậm là nhưng số có ảnh hưởng lớn đến việc sử dụng GPGPU trong các HPC.

  • Base Clock: 1020 MHZ (so với bản ref của Nvidia là 876 Mhz)
  • Boost Clock: 1085 MHz (so với bản ref của Nvidia là 928 Mhz)
  • Memory Clock: 7000 MHz Effective
  • CUDA Cores: 2880
  • Bus Type: PCI-E 3.0
  • Memory Detail: 3072MB GDDR5 (dư dùng cho game nhưng thật tiếc, nếu kiếm dòng Titan Black dễ dàng hơn với 6GB thì sẽ thực sự ngon dùng cho neuron networks lớn)
  • Memory Bit Width: 384 Bit
  • Memory Speed: 0.28ns
  • Memory Bandwidth: 336 GB/s
Trụ được đến đây, xin mời các bạn hãy thư giãn với một clip 20s khi tôi phải lắp lại nguồn để cấp đủ 8-pin x 2 vào mỗi con card của HPC.

Vậy trong tương lai, khi Nvidia đã hoàn toàn chú tâm và đầu tư mạnh mẽ bậc nhất vào phân hệ sức mạnh cho xử lý trí tuệ nhân tạo, AI, Deep Learning thì có gì sẽ thay đổi. Dù không phủ định, gaming đồ hoạ vi tính vẫn là thị trường bậc nhất nhưng những biến chuyển gần đây cho thấy Nvidia sẽ tiếp tục tạo được sự hợp lực cả hai hướng đi trên. NVIDIA đã công bố lộ trình trong tương lai gần năm 2016 sẽ ra mắt GPU Pascal (như một bước chuyển tiếp đến Volta 2018???) bổ sung sức mạnh cho các dòng hiện tại chủ yếu liên quan đến HPC, AI & DL.

NvidiaGPU Roadmap

Pascal là cuộc cách mạng của Nvidia hướng tới điện toán cao cấp cho trí tuệ nhân tạo và các mạng thần kinh neuron network. Pascal có thể tóm lược ở 3 điểm:
  1. Tổ hợp toán cả 16 bit và 32 bit tạo nên sức mạnh tính toán gấp 4 lần Maxwell hiện tại.
  2. Công nghệ HBM (High Bandwidth Memory- Bộ nhớ băng thông cao) sẽ thay thế cho GDDR5 (ATI đã tiên phong đưa vào sử dụng trong dòng GPU Fury X năm qua). Lượng VRAM tăng tới 32 GB và cho băng thông 6x hiện tại với HBM (bản chất là chồng các chip nhớ lên nhau, nên còn gọi là 3D VRAM).
  3. Công nghệ truyền dữ liệu NVLINK giữa các GPU với nhau cho băng thông từ 80->200 GB/s, tức là nhanh gấp từ 5 đến 12 lần băng thông PCIe x 16 gen 3 hiện tại.
Với 3 cải tiến trên, sức mạnh tổng thể của card đồ hoạ thế hệ Pascal sẽ có bước nhảy vọt, gấp 10 lần so với kiến trúc Maxwell hiện tại. Thật nóng lòng đợi nhà "bác học" Pascal nhưng nếu thế đến tay người dùng chắc phải gần hơn 1 năm nữa nhưng nếu không thật vội vàng và cấp thiết như tôi thì hãy chờ đợi một chút cũng đáng. Nếu sẵn tiền và chỉ cần để học hành tý chút thì hãy dòn tiền quất 1 con Titan X 12GB là đủ để tiếp tục chờ đợi.

PascalGPU

Thứ Hai, tháng 1 18, 2016

Siêu máy tính Titan (số 2 thế giới từ 2013 ~)

Titan vốn đang bá chủ thiên hạ cho tới năm 2013 thì bị Thiên Hà lên chiếm vị trí độc tôn. Titan có một lịch sử phát triển khá thú vị chứ không như Thiên Hà (Tienhe 2). Titan vốn được nâng cấp từ siêu máy tính Con Báo Jaguar trước đây được làm ra bởi công ty Cray. inc của Mỹ. Titan giờ đây là một sự kết hợp thú vị của quân xanh (Nvidia GPU) và quân đỏ (AMD CPU). Titan chính thức được đưa vào sử dụng 29/10/2012, đặt tại Phòng thí nghiệm quốc gia Oak Ridge.

Tài trợ chính: Bộ Năng lượng Mỹ và  and NOAA (<10%)
Tổ chức vận hành: Cray Inc.
Kiến trúc: 18,688 AMD Opteron 6274 16-core CPUs + 18,688 Nvidia Tesla K20X GPUs
Công suất tiêu thụ: 8.2 MW
Hệ điều hành: Cray Linux Environment
Diện tích đặt máy: 404 m2 (4352 ft2)
Bộ nhớ: 693.5 TiB (584 TiB CPU and 109.5 TiB GPU)
Lưu trữ ổ cứng: 40 PB, 1.4 TB/s IO Lustre filesystem
Công suất tính toán: 17.59 petaFLOPS  (công suất tính toán theo thiết kế max được 27 petaFLOPS)
Chi phí: $97 million
Xếp hạng trong TOP500: #2 từ 6/2013. Trước đó là #1 khi mới được dựng lên.
Mục đích sử dụng: nghiên cứu khoa học.



Titan_render
Nói qua chút về lịch sử kỳ vĩ của Titan. Tiền thân của Titan, Jaguar, sử dụng CPU AMD 4core 2.3 Ghz Barcelona. Bắt đầu được xây dựng vào năm 2005 với công suất tính toán thiết kế là 25 teraFlops, tức tương đương với 5 con GTX 980. Cuối năm 2008 thì cuối cùng cũng được nâng cấp lên đến 1.4 petaFlops. Đến năm 2009, Jaguar được mang ra đại tu, chuyển toàn bộ CPU sang AMD 6core 2.6 GHz Istanbul và 4core Budapest, nâng tổng số CPU trong mạng lưới lúc này là 200,000. (18,688 node thế hệ 5, mỗi node có 2 CPU Istanbul, 7830 node thế hệ 4, mỗi node sử dụng 1 cpu Budapest). Và 1 lần update cuối cùng đạt công suất 1.76 petaFlops.
Năm 2011, Jaguar được chuyển đổi dần trở thành Titan. 200 cabin (mỗi cabin chứa 96 node) thay thế từ từ thành 1 cpu 16 core AMD Opteron 6274 Interlagos và 1 GPU NVIDIA Tesla K20X (Con GPU này giá tầm 8000 USD, mỗi con chứa 2688 CUDA cores, bản chất là phiên bản cao cấp cùng chip của GTX 780). Việc chuyển đổi kéo dài đến tháng 10/2012 thì hoàn tất và chính thức đổi tên thành Titan vì Jaguar trước đây chỉ sử dụng core x86 để xử lý còn giờ phải là Titan do sử dụng cả x86 lẫn CUDA. Các lập trình sư đang sử dụng Jaguar tuy không thích quá trình nâng cấp xử lý sang CUDA, bởi vì nó không biến hóa được nhiều so với lập trình trên CPU quen thuộc trước đây, đây là một bước ngoặt "learning curve" cho đội ngũ lập trình viên về cách tiếp cận và tối ưu theo kiến trúc GPU nên có 2 trường phái sử dụng và đều được đáp ứng. Tuy nhiên, bản thân NVIDIA cũng chuyển dịch sang hướng hỗ trợ tăng tốc điện toán và thúc đẩy mạng neuron nên việc chuyển đổi sang sử dụng GPU trong điện toán song song diễn ra mạnh mẽ hơn bao giờ hết. Sức mạnh GPU giúp cho AI, Deep Learning, Machine Learning có những bước nhảy vọt. Bản thân Titan vẫn còn có kế hoạch tiếp tục nâng cấp để đến năm 2018. IBM đã trúng thầu vụ này nên Titan sẽ dần thay đổi để trở thành siêu máy tính tên mã Summit sử dụng CPU của IBM (Power PC???) và thế hệ GPU mới nhất của Nvidia Pascal. Titan cũng là siêu máy tính rất hiệu quả về mặt năng lượng và dùng tản nhiệt khí.

Thứ Ba, tháng 1 12, 2016

HPC (P3) - CUDA, đội xanh Geforce GTX cho Deep Learning giá rẻ

Như kết luận trong phần trước, CUDA là kiến trúc lựa chọn cho HPC của tôi. Và cũng chẳng phải thắc mắc nhiều, tức là chỉ có cách trung thành với các card đồ hoạ sản xuất bởi NVIDIA. Tuy nhiên, NVIDIA cũng không hổ danh là nhà sản xuất GPU số 1 thế giới nên cũng đủ để đau đầu lựa chọn sản phẩm GPU nào phù hợp nhất. Đương nhiên, nếu xuất phát điểm không phải chỉ để dành cho nghiên cứu cùng với túi tiền cực kỳ rủng rỉnh không cần quan tâm đến giá cả, cứ con mới nhất, xịn nhất mà mua.
Nhưng nếu nghĩ đến hiệu năng với giá pp (price/performance) cho một newbie trong DL thì chuyện trở lựa chọn nào trở thành một bộ môn khoa học nghiêm túc hơn nhiều. Trên thế giới, việc sử dụng GPU và cụ thể là với NVIDIA CUDA đã mang lại sức mạnh siêu máy tính đầu tiên vượt ngưỡng 10 petaFLOPS, chiếc siêu máy tính mạnh thứ 2 trên quả đất, sau Thiên Hà, với tên là Titan.
Các bạn có thể ngó thêm thông tin về siêu máy tính mạnh số 2 thế giới ở đây nhé.

Quay trở lại với quá trình dựng HPC của mình, bắt đầu với việc chọ GPU nào của NVIDIA. Trong thời gian 10 năm trở lại đây, NVIDIA có 4 dòng kiến trúc thiết kế GPU chính và có sở thích gắn tên các nhà khoa học lớn trong lịch sử với mỗi dòng đó. Kiến trúc thiết kế Fermi (GTX500-600 series), Kepler (GTX 700 series), hiện tại là Maxwell (GTX 900 series) và cuối năm nay, hy vọng sẽ xuất xưởng chip GPU dòng Pascal. Tại mỗi dòng thì sẽ có 3 cấp độ, dành riêng cho điện toán máy chủ cao cấp Tesla, máy trạm trung cấp Quadro, và game thủ thứ cấp Geforce GTX và giá tiền cũng từ rất cao xuống đến bình dân...

Vậy chọn GPU nào cho DL?

Nhiều người lầm tưởng đã làm việc thì cứ phải chọn dòng cho trạm làm việc Quadro. Để học DL thì chỉ có thừa tiền lắm mới thế. Quadro, về cơ bản là những con chip được lựa chọn kỹ càng (theo ASIC chẳng hạn) và thiết kế dùng làm đồ hoạ, đổ bóng 3D, etc chứ bản chất cũng không khác dòng Geforce rẻ tiền hơn rất nhiều (đôi khi là 1/4  ~  1/10 giá) với cùng hiệu năng.  Về phần cứng là vậy, tôi nghĩ cơ bản chip giống hệt và chỉ có Nvidia viết driver riêng thành từng dòng nên làm cho card Quadro có driver được chăm chút và test kỹ càng hơn rất nhiều khi release (sẽ ít lỗi phần mềm hơn, nhưng release tính năng mới sẽ chậm hơn). Driver cúa dòng game thủ GeForce đôi khi bị cắt bớt/ẩn tính năng của chip phần cứng đi. Nhiều cư dân mạng đôi khi hack một tý để dùng driver của Quadro cho Geforce còn được nữa là. Được cái tên đặt trong Quadro khá mạch lạc theo các kiến trúc chip GPU. Ví dụng Quadro Fx5600 là dòng Fermi, Quadro K6000 là dòng Kepler (tương đương con GTX 780 Ti của tôi, dòng GK110), Quadro M6000 là dòng Maxwell.
Tesla là một dòng card đồ hoạ cao cấp dành cho máy chủ và xử lý thuần tuý, và không có kết xuất ra màn hình (trừ một số đời ơ kìa ấm ớ, không hiểu sao lại có) Về chip thì cơ bản vẫn vậy, theo dòng nhưng các tính năng tính toán, đặc biệt là dấu phẩy động FP được kích hoạt đầy đủ và tối ưu nhiều nhất có thể (Khả năng chip có khi vẫn thế nhưng bọn Xanh nó set disable bớt đi ở các dòng rẻ đi chứ không sản xuất thành 1 con chip dòng Tesla riêng đâu??? Láo quá!) Nhưng gì thì gì, Quadro và Tesla thì có cái rất hay cho DL là bộ nhớ khủng, thường gấp 2, gấp 3 dòng phổ thông game thủ Geforce phổ thông, một trọng yếu cho các ma trận DL cỡ lớn hơn bình thường chút mà tôi sẽ đề cập đến sau này trong series về Deep Learning.

Cùng kiến trúc và chip GPU mã GK110, số nhân CUDA như nhau, GTX 780 Ti với 3GB RAM có giá tầm 600$, Quadro K6000 12GB RAM giá 4800$ và Tesla K40 giá 5800$. Mà nếu chạy mấy cái task vẽ vời dùng ma trận cỡ nhỏ, tôi nghĩ rằng sẽ chẳng khác biệt đáng kể về performance (Dòng GTX của tôi là dòng khủng, card độ, ép xung nên có khi còn nhanh hơn ấy.)

TeslaK40
Tesla K40 với FP64 ở mức vượt trội gấp 8 đến 10 các card cùng GPU ở các dòng sản phẩm còn lại, thích hợp với tính toán mô phỏng phản ứng, hóa dầu, địa chất, etc. Cái này khả năng một phần thiết kế mạch, một phần các phần mềm driver các dòng còn lại bị vô hiệu hoá chứ con chip GPU có khi như nhau thôi nhể. Siêu cuội Nvidia đa cấp với giá chát chúa $5800.

quadro-k6000-3qtr

Quadro K6000 hầu như không vượt trội gì so với GTX, ngoài bộ driver được test kỹ và VRAM khủng. Giá 4800$, tức là thêm $4K chỉ để được driver và dịch vụ support của Nvidia mức pro + + với 9GB extra VRAM. Dân đồ họa thì ưa thích dòng này vì sự bền bỉ và support tận răng cho các ứng dụng kết xuất và chỉnh sửa ảnh, video.

evga-geforce-gtx-780-classified-3gb

EVGA GTX 780 Ti Classified. Khủng của khủng trong dòng gamer đại chúng của Nvidia GTX 780 Ti. Cái gì cũng đẹp, mỗi tội VRAM 3GB là quá hẻo cho các ma trận điểm lớn một chút trong các mạng neuron lớn, còn nếu chỉ dùng video game thì đến giờ vẫn đang rất ổn áp rồi.

Nói chung muốn siết cũng phải biết điều tiết. Nhìn vào đây thì thấy cơ bản Geforce và Quadro không khác nhau mấy, còn so với Tesla thì chắc chỉ để cho mấy bố làm hoá dầu với cả mô phỏng phản ứng hạt nhân nhể. Chú ý tuyệt đối phải hiểu rõ (sâu :D) mình cần gì để chọn GPU cho phù hợp nhé.

GPU_Chart

Khả năng tính toán của 1 CPU/GPU được đo bằng đơn vị floating-point operations per second (FLOPS) – khả năng tính toán dấu chấm động trong 1 giây trong single precision(SP). SP là 1 dạng con số được định nghĩa = 32 bit.
Ở trên thì có thêm thuật ngữ double precision (DP), tức là con số được định dạng 64 bit. Tùy thuộc vào cấu tạo của Card mà 2 card chung GPU có thể giống single precision nhưng khác double precision (ví dụ K40 và 780 Ti là 2 con GPU giống nhau nhưng chỉ số DP lại khác nhau). Chắc cả CHIP và Driver ở Tesla mới được mở hết giới hạn.

Với ưu điểm tuyệt đối về giá, GeForce là lựa chọn không phải bàn cãi. Câu hỏi bây giờ là dùng 1 GPU hay nhiều GPU. Lưu ý Các trò SLI hay CrossFire là vô nghĩa trong DL và Linux vì thực ra để giao tiếp dataset giữa các card trong DL, chúng là quá chậm, chỉ có thể PCI-E  3.0 là đủ dùng. Nếu muốn mò mẫm học nhiều và tự tin về khả năng đồng bộ thì cứ mua vài con GPU (max là 4 cho đủ Quad SLI [dù chả liên quan mấy] với lại cũng gần như là max số khi PCI-e các mobo thông dụng có thể chứa được các GPU đúp này) để thử. Còn không rủng rỉnh lắm, cứ dồn tiền đập vào con mạnh nhất có thể trong dòng phổ thông (khi viết bài này là con GTX Titan X 12GB dòng Maxwell đấy)

Suy cho cùng là tính toán song song nên tổng hiệu suất mấy card rẻ thì có thể cao hơn 1 card mạnh thật. Tuy nhiên, việc đồng bộ hóa giữa 2 GPU thường không tốt và khá khó khăn cho coding (đôi chỗ là chưa thể như chia sẻ bộ nhớ video với nhau) nên sức mạnh không tăng theo phép cộng card được. Về lâu dài, thì cũng hết đường/hết khe để mà nâng cấp. Nếu chỉ nghịch ngợm tý trong Neural Network nhỏ ,thật lòng bạn nên vét túi vào con GPU mạnh nhất có thể. Nhỏ quá, việc đồng bộ là overhead quá sức tải của đầu óc, để tiếp thu cái khác có lợi hơn.
Nếu nghịch lâu dài với network khủng hơn như Convolutional Neural Network (CNN) thì có thể tối ưu hoá hiệu năng Price/Performance. Hiện tại CNN hỗ trợ tối đa lên đến 4 gpu trong 1 thùng nhưng sau này, khi mà hệ CPU Pascal của NVIDIA ra đời thì số lượng GPU trong 1 máy sẽ tăng cao hơn nhiều...

 Tạm thời xem mẩu video timelapse chiếc HPC được lắp lên thế nào cho đỡ chán mắt cái đã nhỉ? Ở phần sau tôi sẽ nói kĩ hơn về các vi kiến trúc cơ bản của Nvidia và lựa chọn của mình.

HPC (P2) - Lựa chọn kiến trúc GPU nào cho Deep Learning

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)xeonphi
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 

intel.web.480.270
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.
khronos-group-logo

03. CUDA (NVIDIA)

Với khẩu hiệu Nvidia Tăng tốc điện toán (Nvidia Accelerated Computing)
NV_CUDA_2D_Color_large
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à.

Nvidia AI Engine

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.

Thứ Tư, tháng 1 06, 2016

HPC (1) - Tôi dựng máy tính HPC thế nào? Big data - Machine Learning - DeepLearning

Từ một post trên facebook về hiệu ứng ảnh nghệ thuật của cậu em Nam Vũ, tôi lọ mọ mở rộng hướng sử dụng và nghiên cứu trong việc sử dụng mạng thần kinh neuron network. Xuất phát điểm từ con số 0 tròn trĩnh, tôi điềm nhiên mở rộng nghiên cứu và nhận ra rằng năng suất bị hạn chế khi chỉ gói gọn sử dụng phần cứng hiện tại (một con MacPro cũ kỹ). Vì thế, cũng như bao nhà nghiên cứu khác, tôi bắt đầu việc tự đầu tư học lý thuyết về Deep Learning và để có thể đẩy nhanh quá trình học tập và thử -sai của mình, tôi quyết định bỏ tiền túi dựng lại nền tảng phần cứng của riêng mình.
Vậy trước hết, hãy tìm hiểu qua về Deep Learning. Deep Learning (DL) là gì?
Nói một cách ngắn gọn, DL là một lĩnh vực mới trong nghiên cứu về Học Máy (ML: Machine Learning), với mục tiêu đưa ML tiến gần hơn nữa với bản chất của trí tuệ nhân tạo (AI: Artificial Intelligence). Phương châm cơ bản của DL là mô phỏng lại hoạt động của não bộ thành thuật toán liên quan đến tiếp thu đối tượng quan sát qua nhiều tầng biểu đạt gồm cả cụ thể và trừu tượng tiếp đó sẽ làm rõ nghĩa dần các dữ liệu đó. Bản chất nở rộ của DL ngày nay khi DL đã có thể đưa ra kết quả với độ chính xác cao do "học" nguồn dữ liệu khổng lồ (Big Data) và năng lực xứ lý mạnh của máy tính.
Cụ thể hơn, trong lĩnh vực nhận dạng và tái tạo hình ảnh thì lý thuyết lẫn ứng dụng DL được minh chứng rõ rệt nhất. Cho máy một hình ảnh chụp được, nó sẽ phải tự DL để có thể phân tách và nhận diện dữ liệu từng phần trên hình ảnh. Một chiều là chia ma trận để trị, chiều kia là trừu tượng hoá để sắp xếp lớp (layer) và phân loại. Như thế, nếu có thể xử lý song song từng việc nhỏ trên mỗi bộ vi xử lý sẽ giúp đẩy nhanh quá trình này. Các CPU của Intel hiện thời, có thể có 2 lõi (Dual Core) đến 4 lõi (Quadcore) rồi một số có thể lên đến 8 lõi, 12 lõi hay những loại chuyên biệt thì tầm max phổ thông hiện tại là 18 lõi - 36 luông (Xeon 2699v3 với giá lên tới tầm 5000 USD mà cũng không dễ dàng mua được). Tự nhiên, tìm kiếm sức mạnh xử lý song song trở nên cấp thiết đối với phần cứng. Trong cuộc chiến đếm core-lõi phục vụ xử lý song song ấy, Nvidia, nhà sản xuất card đồ hoạ máy tính lớn đã nhanh chóng nắm bắt được cơ hội này để tiên phong, đồng thời, các nhà nghiên cứu cũng nhận ra tiềm năng khổng lồ của các card đồ hoạ hiện tại để tham gia vào Deep Learning này. Hiển nhiên, số lõi xử lý ảnh và tính toán trong các card đồ hoạ giờ vượt xa gấp cả trăm, nghìn lần so với CPU Intel. Nvidia GTX Titan X, card đồ hoạ phổ thông hàng đầu cho game thủ hiện tại, cũng chứa đến 3072 lõi xử lý chạy song song, gấp cả nghìn lần một bộ xử lý intel dual core thông thường. Mỗi lõi, hiện giờ chỉ để xử lý một vùng điểm hiển thị trên màn hình với thông tin màu sắc, đổ bóng, etc mà thôi thì nay có thể chuyển hoá dùng để tính toán nhiều thứ khác nữa khi được viết thêm các phần mềm thích hợp điều khiển. Vì thế, đùng một cái, người dùng thông thường, đặc biệt các game thủ đang có trong tay những cỗ máy nhỏ nhưng rất có võ, công lực đủ lớn nếu biết cách chuyển hướng sử dụng. Tên gọi các siêu tính toán HPC (High Performance Computing PC) trở nên dễ dàng tiếp cận với công chúng cộng đồng nghiên cứu gia hơn bao giờ hết, chứ không còn nhất thiết phải của một ông lớn CNTT nào nữa cả. Nói tới đây, chỉ riêng về lựa chọn card đồ hoạ nào cho hệ thống nghiên cứu học tập DL của mình với tiêu chí ngon - bổ - rẻ thì tôi cũng đã phải đọc đến hàng tá các loại tài liệu phân tích đánh giá. Vậy mà vẫn không tránh khỏi một số sai lầm cốt yếu mà tôi sẽ chia sẻ thêm sau.
Nếu dành 2 phút để xem 2 nhà khoa học nổi tiếng dẫn chương trình Mythbuster trên Discovery sau đây demo sự khác biệt về xử lý của CPU và GPU thì các bạn sẽ thấy rõ ngay.
Một chiếc iphone trong lòng bàn tay người dùng ngày nay có sức mạnh xử lý chẳng kém gì siêu máy tính vài thập kỷ trước. Điện toán cá nhân ngày càng mạnh, càng rẻ và dễ tiếp cận, việc đòi hỏi năng lực xử lý thông tin nhiều, nhanh càng cấp thiết. Chúng ta đã bắt đầu vào những năm cuối của quá trình hậu máy tính, với dự doán đến năm 2020 có thể có trên 10 tỷ thiết bị điện toán cầm tay kết nối internet. Sự kết nối tạo ra một lượng dữ liệu không lồ và khả năng tính toán cực lớn linh động và thay đổi từng ngày, từng giờ, từng phút, từng giây (ví như dự đoán giá cả cổ phiếu, thị trường) Vì thế, không thể lập trình thông thường được nữa, nó phải làm theo các thuật toán đặc biệt sao cho các thuật toán ấy sẽ phải tự lập trình lại bản thân và tự biến đổi bản thân chính chương trình ban đầu để thích ứng, kiểu máy tự học được. Thuật toán kiểu thế gọi cho hoành là Machine Learning.
mobile_internet_growth

ML cũng không phải cái gì mới. Ứng dụng đầu tiên của nó có lẽ là phần mềm tự học đánh cờ vua từ thời mainframe. Sau khi tự học tầm vài trăm ván cờ, nó sẽ có đủ kinh nghiệm để đánh bại các loại chơi cờ lìu tìu như lập trình viên bọn tôi. Năm 1997, thì IBM Deep Blue đã thắng kiện tướng cờ vua thế giới Garry Kasparov. Từ đó, không ai còn đề cập  đến chuyện chơi cờ quạt gì với máy tính nữa. Deep Blue lúc đó đứng thứ 259 siêu máy tính trên thế giới, khả năng xử lý 11.38 GFLOPS. Trong khi chỉ mỗi cái card đồ hoạ GTX 980 mới mua nâng cấp máy mà tôi đang gõ bài này đã có thể xử lý tầm trên 5000 GFLOPS rồi. Đơn giản vì nó có tới 2048 nhân xử lý.
GTX980
Cái mobilephone còn không rời tay được chốc lát thì quanh ta tầm này chẳng còn gì mà không dính đến nhu cầu điện toán nữa đâu. Mà làm gì có nhu cầu điện toán nào thời nay mà không loay xoay với ML nữa cả. Kiểu như:
  • Tối ưu tập đối tượng khách hàng cho quảng cáo sản phẩm mới.
  • Diệt và phòng chống virus máy tính (cũng phải học pattern mà phòng ngừa)
  • Các trò định hướng, dự đoán, từ xu thế giá cả, cổ phiếu, thị trường, thời tiết, giá ngoại tệ, vé máy bay, chi phí bảo hiểm.
  • Xác định xu hướng sở thích giới trẻ, hội già, nhóm người sống ở bán cầu Đông, bán cầu Tây (facebook)gợi ý mua thêm sách, thêm đồ (amazon, ebay) hay nêu dữ liệu quan tâm có thể liên quan khi tìm kiếm (Google)
  • Nhận biết khuôn mặt, nhận biết giọng nói (hình sự vcd), nhận biết vật thể trên đường (xe tự lái)
  • Phát triển thuốc men dược phẩm, tổng hợp hoá học, tính toán mô phỏng, chẩn đoán phòng ngừa ung thư.
  • Tính toán bài tập thể dục, calories tiêu thụ cần thiết và đặt các mục tiêu mới rèn luyện sức khoẻ mới.
  • Tính toán dẫn đường, chỉ dẫn giao thông, tình trạng giao thông đi lại theo thời gian thực.
Cùng với đó, sự nở rộ phong trào IoT (Internet of Things), QuantifiedSelf, càng thúc đẩy nhanh, nhiều, sâu và rộng quá trình số hoá mọi sự vật hiện tượng xung quanh hoạt động của con người, khiến cho ML, DL, AI là nhu cầu bắt buộc hiện diện thường nhật trong đời sống con người.
Tiếp cận với GPU để học cách thức hoạt đông DL ở trên như một newbie, tôi đã lựa chọn nền tảng HPC của mình thế nào?