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.