Điểm tin – Tháng 4 – Tuần đầu

Bắt chước mọi người, hôm nay ngày Cá tháng Tư, tôi cũng bắt đầu viết blog trở lại. Tôi bảo đảm mọi thứ trong bài này đều là thật, mặc dù không đúng với tinh thần ngày này chút nào -;)

Tuần đầu tiên của tháng Tư thường là tuần rất bận rộn với hầu hết mọi người ở Nhật, nhất là dân Tokyo như tôi, vì phải tham gia vô số buổi hanami (ngắm hoa đào) với bạn bè, cơ quan, khách hàng, tiếp nhận các đồng nghiệp mới, chia tay các đồng nghiệp cũ ra đi tìm chân trời mới (hahaha), và còn phải bận rộn chuẩn bị cho ngày khai giảng năm học mới của đám nhóc ở nhà. Nước Nhật chọn mùa hoa đào nở là mùa bắt đầu cho tất cả mọi thứ quan trọng nhất trong năm, từ kết thúc năm học cũ đến khai giảng năm học mới ở tất cả các cấp, tiếp nhận nhân viên mới vào công ty, rồi lễ tốt nghiệp ra trường cho sinh viên đại học, dọn nhà mới, …

Tôi sẽ bắt đầu với chủ đề Deep Learning.

Bạn nào đã và đang làm các thứ liên quan đến Deep Learning, hay nói rộng ra là Machine Learning, chắc chắn đều biết mùi vị đau khổ của công việc thu thập/chuẩn bị dữ liệu đầu vào cho các thuật toán máy học, cho dù là học có quản trị (supervised learning) hay học không có quản trị (unsupervised learning). Một trong những bước quan trọng của công việc mệt mỏi, buồn tẻ và dễ dẫn đến sai sót này là ngồi tạo annotation cho dữ liệu cần học. Để cải tiến cả về chất và lượng của nhiệm vụ đặc biệt này, khuynh hướng chủ đạo hiện nay đang được các nhóm nghiên cứu AI khắp nơi tiến hành là tạo ra các công cụ tự động/bán tự động sinh annotation cho dữ liệu huấn luyện hệ thống dựa vào các kết quả của các thuật toán đã được cài đặt trước đó. Việc làm này còn giúp phát hiện và cải thiện các điểm chưa hoàn thiện trong chính các thuật toán, theo kiểu lấy mỡ nó rán nó.

Đi theo hướng này, bạn Ishtar Nyawira, một sinh viên thực tập bộ môn khoa học dữ liệu (một bộ môn hết sức thời thượng) tại trung tâm siêu máy tính Pittsburgh, đã chỉ ra cách bạn sử dụng deep learning và siêu máy tính Bridges với các bộ gia tốc GPU để tự động hóa quá trình tạo annotation cho các ảnh sinh học có độ phân giải cao thu được từ các máy quét ảnh SEM (Scanning Electron Microscope). Mục tiêu của dự án bạn đang tham gia hết sức ghê gớm là nhằm hiểu thấu đáo cách thức các neuron trong não người nối kết với nhau.

Trước đây các sinh viên sau đại học tại học viện Allen chuyên về khoa học não của Harvard (Harvard Allen Institute for Brain Science) đã phải mất hàng tháng trời để tạo annotation bằng tay cho các ảnh neuron của cá ngựa vằn (zebrafish) có được từ máy SEM. Theo Nyawira cho biết, “Các bạn sinh viên đã làm việc với gần 5000 ảnh cá ngựa vằn. Trong mỗi cái ảnh đó, có khoảng 200 cái neuron cần được annotate — do vậy mà quá trình xử lý 5000 ảnh này cực kỳ tốn thời gian”. Cô nói tiếp, “Đây là quá trình mà chúng tôi muốn tự động hóa để các bạn sinh viên không phải tốn thời gian vô những chuyện này, thay vào đó dùng các kỹ năng của mình cho những việc hay ho khác.”

Với việc sử dụng các GPU Tesla P100 trên siêu máy tính Bridges và công cụ TensorFlow cho deep learning, Ishtar đang huấn luyện các mô hình của mình dựa trên các ảnh SEM của ấu trùng cá ngựa vằn cũng như não chuột để nhận dạng các neuron một cách chính xác, không bị nhầm lẫn với các nhiễu và mô có trong các ảnh.

Xem video trên YouTube ở đây nhé: https://youtu.be/2X6-PTX5BzM

Chi tiết về nghiên cứu của Nyawira xem ở đây.

SC08 và GPU

 

Đối với dân trong ngành tính toán hiệu năng cao (HPC – High Performance Computing), hội nghị SC (supercomputing conference) hàng năm là nơi để gặp gỡ, trao đổi về các tiến bộ mới trong lĩnh vực máy “ngốn số liệu”. Hội nghị SC năm nay được tổ chức tại Austin, Texas là hội nghị lần thứ 20 của ngành, tính từ hội nghị đầu tiên được tổ chức tại Orlando, Florida năm 1988. Trong lần thứ 20 này, SC08 đã chứng kiến sự chuyển hướng đáng kể trong ngành HPC, từ mô hình siêu máy tính truyền thống tốn kém sang các mô hình kinh tế hơn, đặc biệt là mô hình lập trình song song trên GPU. Dưới đây tôi tóm tắt lại những sự kiện chính trong hội nghị lần này có liên quan đến GPU, mặc dù còn vô số thứ khác để học hỏi từ SC08.

  • SC08 đánh dấu sự ra đời của siêu máy tính đầu tiên trên thế giới sử dụng GPU làm công cụ tính toán hữu hiệu và kinh tế. Tôi rất lấy làm tự hào vì chiếc siêu máy tính đó đến từ Tokodai (TiTech, Tokyo Institute of Technology), nơi tôi đã có cơ hội học tập và nghiên cứu trong nhiều năm liền kể từ ngày đầu tiên bước chân lên đất Phù Tang. Với tên gọi Tsubame, hệ thống này được đặt trên tầng 2 của trung tâm tính toán và thông tin khoa học toàn cầu, nằm cạnh thư viện trung tâm ở campus O-Okayama. Bằng cách lắp đặt thêm 170 khối Tesla dạng 1U, với mỗi khối gồm 4 card Tesla, tổng cộng hệ thống có thêm 170 x 4 = 680 Tesla GPU. Sự bổ sung kịp thời này đã cho phép Tsubame vượt lên vào vị trí 29 trong bảng tổng sắp LINPACK Benmark kỳ này, với khả năng tính toán có độ chính xác kép trên số thực là 77.48 TFLOP. Với một kinh phí khiêm tốn, ít hơn rất rất nhiều lần so với hệ thống ban đầu, và với thời gian lắp đặt kỷ lục (khoảng 1 tuần lễ) nhờ sự kết hợp tuyệt vời của các kỹ sư tài năng đến từ Sun Microsystem, NEC, và NVIDIA, Tsubame với Tesla chứng tỏ khả năng sử dụng GPU trong các hệ thống HPC là hoàn toàn hiện thực. Tokodai sẽ chào đón sự kiện này bằng một ngày đặc biệt, đúng vào thứ ba tuần sau 02/12 tại O-Okayama Campus. Bạn nào ở Nhật và có thời gian vui lòng đến dự cho vui.
  • SC08 chứng kiến sự hợp tác toàn diện giữa NVIDIA và NEC. Chắc chắn trong thời gian sắp tới, chúng ta sẽ được thưởng thức nhiều sản phẩm ngoạn mục dựa trên CUDA mà NEC mang lại cho người dùng mức cao.
  • Phần mềm huyền thoại Mathematica với phiên bản 7.0 chính thức hỗ trợ tự động tính toán song song trên các hệ thống đa lõi, và phiên bản “CUDA-enabled” sẽ được phát hành vào tháng Giêng năm 2009. Chúng ta cùng xem Wolfram Research nói gì về CUDA:

“Since its initial release, Mathematica has been adopted by over 3 million professionals across the entire global technical computing community, and it has had a profound effect on how computers are used across many fields,” said Joy Costa, director of global partnerships at Wolfram Research. “The prospect of a hundred fold increase in Mathematica 7 performance is staggering. CUDA enabled Mathematica will revolutionize the world of numerical computation.

  • Không những chỉ có các dàn máy khổng lồ, SC08 là nơi ra đời của một khái niệm mới, “Personal Supercomputer (PSC)”. Nếu trong thập niên 80, những chiếc máy PC của IBM đã tạo nên một cuộc cách mạng máy tính với công thức “Một người dùng – một PC”, thì hôm nay, với Tesla/Quadro GPU của NVIDIA, chúng ta có “Một nhà nghiên cứu, một PSC”. Cấu hình thông dụng của các PSC mà tôi có dịp tham gia lắp đặt gần đây bao gồm 1 card Quadro FX5800 phục vụ hiển thị đồ họa cùng 3 card Tesla C1060 phục vụ tính toán. Sự kết hợp này mang lại cho chúng ta khoảng 4 TFLOP khả năng tính toán trên số thực với độ chính xác đơn, cùng với hệ thống bộ nhớ 16GB DDR2, với giá thành khoảng 10,000 USD, rẻ hơn 100 lần so với một hệ máy có cùng khả năng tính toán sử dụng giải pháp CPU cluster, chưa kể đến không gian nhỏ gọn của chỉ một thùng máy lớn, thay vì cả một gian phòng, và chi phí điện năng hết sức tiết kiệm.

Cuộc chiến xử lý song song đã bắt đầu!!!

Cái nóng của mùa hè năm nay dường như đã làm nóng thêm bầu không khí chiến tranh giữa các đại gia trong ngành công nghiệp máy tính. Đó là cuộc chiến giành quyền kiểm soát thị phần xử lý song song trong một tương lai “hết sức gần” (độ một hai năm nữa) trên các kiến trúc đa lõi và chip đồ họa máy tính, giữa ba đại gia Intel, NVIDIA, AMD, và gần đây có cả Apple tham gia với tuyên bố về sản phẩm hết sức đình đám là OpenCL. Chúng ta hãy cùng nhau điểm lại các sự kiện đáng chú ý trong cuộc chiến này suốt hai năm gần đây.

Có lẽ cuộc chiến đa lõi này đã được bắt đầu vào ngày 8 tháng 11 năm 2006, khi NVIDIA, sau gần 4 năm trời nghiên cứu với khoảng 400 triệu đô la đầu tư, đã công bố một thế hệ chip đồ họa đa lõi hoàn toàn mới, với tên gọi GeForce 8800, mở đầu cho loạt chip GeForce 8, hay còn gọi tắt là G80, hoặc chính xác hơn là Tesla thế hệ 1 (tên này mới chỉ được đưa ra sau này). Ngoài khả năng vượt trội về mặt đồ họa, tiềm ẩn bên trong kiến trúc chip G80 là khả năng xử lý song song mức cao có thể lập trình được qua môi trường lập trình CUDA, được NVIDIA chính thức công bố bản beta vào ngày 16 tháng 2 năm 2007 (chính là ngày sinh nhật CEO của NVIDIA, Jen-Hsun Hoang, và cũng là ngày thành lập công ty NVIDIA).

Chỉ sau khi NVIDIA công bố chip G80 có sáu ngày, AMD đã tuyên bố về dự án AMD Stream Processor vào ngày 14 tháng 11 năm 2006. Cùng với dự án về phần cứng này, hàng loạt xúc tiến về mặt phần mềm cũng đã được AMD tiến hành cho đến nay, bao gồm cả đặc tả CTM (Close To the Metal), vốn đã bị “cho ra rìa” từ lâu và bộ phát triển phần mềm Stream SDK.

Tiếp tục mở rộng thị trường tính toán hiệu năng cao ở mức doanh nghiệp, ngày 20 tháng 6 năm 2007, NVIDIA đã chính thức giới thiệu dòng máy Tesla cho tính toán song song cùng với bộ công cụ lập trình CUDA, với phiên bản 1.0 chính thức được trình làng ngày 12 tháng 7 năm 2007, rồi phiên bản 1.1 nối tiếp vào ngày 14 tháng 11 cùng năm. Có thể nói những bước đi kế tiếp nhau này của NVIDIA đã tạo nên một sự khởi động đầy màu sắc cho mảng tính toán song song trên GPU, cả ở phía công nghiệp lẫn giới nghiên cứu khoa học tại các phòng lab ở nhiều trường đại học, viện nghiên cứu, và cả trong các công ty trong nhiều ngành công nghiệp khác nhau như dầu khí, tài chính, truyền thông đa phương tiện, y khoa, v.v… Mọi người có thể tham khảo thêm những gì thế giới đang tạo ra với CUDA ở đây.

Không chịu ngồi yên khi nhìn thấy tiềm năng to lớn của thị trường điện toán trực quan (visual computing), ngay từ khoảng gần cuối năm 2006, trong giới thạo tin công nghiệp đã râm ran về chuyện Intel tuyển thêm rất nhiều người cho một dự án chip đồ họa mới. Đến ngày 17 tháng 3 năm 2008, Intel đã chính thức trả lời mọi người qua thông cáo báo chí về kế hoạch chip đa lõi tương lai của công ty, trong đó phần đề cập về kiến trúc Larrabee nhấn mạnh rằng nó sẽ phục vụ cho môi trường điện toán trực quan.

Trong khi lời tuyên bố này của Intel vẫn đang còn làm tốn không biết bao nhiêu thời gian, công sức, và giấy mực của các phương tiện truyền thông, rồi của các web site chuyên về phần cứng đồ họa, thì ngày 2 tháng 6 năm 2008, NVIDIA đã làm cả thế giới ngạc nhiên với một công bố mới, được dự đoán là có khả năng làm thay đổi hẳn bộ mặt của ngành công nghiệp điện toán trong một ngày không xa. Tên của “quả bom tấn” đó là Tegra. Từ trước đến nay, ngoài kiến trúc x86 của Intel, chúng ta đã có dịp chứng kiến các kiến trúc phi x86 như PowerPC của Apple, Sparc của Sun Microsystem, … tung hoành trên chiến trường điện toán hiệu năng cao. Nhưng đã bao giờ bạn tưởng tượng ra được là, chúng ta sẽ không cần có mainboard để gắn tùm lum thứ lên đó, rồi tốn công sức và tiền bạc để giải nhiệt cho những thứ được gắn lên, và lại còn phải tốn một cái thùng bự để chứa nó không? Với Tegra của NVIDIA, điều đó đang trở thành hiện thực. Tegra không phải là chip đồ họa (GPU), cũng không phải là CPU thu nhỏ, mà là cả một hệ thống được đặt vào một con chip có kích cỡ 12mm x 12mm (144mm vuông), xài điện tối đa 4W. Chính xác nó là một SoC (System on a Chip).

Mọi người vẫn chưa hết bối rối với Tegra thì ngày 16 tháng 6 năm 2008, Apple đã đề đạt lên Hiệp hội Công nghiệp về Giao diện Lập trình Ứng dụng Media (tên gọi là Khronos), đặc tả ngôn ngữ lập trình song song kiểu C, gọi là OpenCL, vốn dự kiến sẽ được dùng trong hệ điều hành Mac OS kế tiếp của Apple. Tôi cũng đã tìm thấy một bài viết khác khá hay về tương lai của OpenCL ở đây. Cái vụ OpenCL này chắc sẽ còn chuyện để nói dài dài. Dạo này đi đâu thấy ai cũng hỏi về nó, mệt quá!

Nhằm đẩy nhanh tốc độ mở rộng thị trường xử lý song song cao cấp, ngày 17 tháng 6 năm 2008, NVIDIA đã chính thức giới thiệu dòng sản phẩm Tesla thế hệ 2, là sản phẩm tính toán song song trên chip đồ họa đầu tiên có khả năng tính toán cỡ Tera flop (siêu máy tính).

Không chịu thua kém, trong tháng Tám mùa hè nóng nực này, Intel đã đi tiếp những bước đi quan trọng trong cuộc đấu đa lõi của mình, bằng cách chính thức công bố chi tiết kỹ thuật của giải pháp Larrabee qua báo chí ngày 4 tháng 8 năm 2008, và sau đó tám ngày tại Hội nghị Đồ họa Máy tính thường niên 2008 (SIGGRAPH’08) với một bài viết chi tiết về mặt thiết kế ở đây. Ngoài ra, tại Diễn đàn các nhà phát triển Intel IDF’08, Intel cũng đã tung ra một cú đánh nỗ lực sau cùng của mùa hè này về phía CUDA bằng cách thông báo là sẽ nhanh chóng cho ra đời bộ công cụ hỗ trợ lập trình song song được tích hợp vào Microsoft Visual Studio, gọi là Intel Parallel Studio.

Mọi chuyện vẫn còn tiếp diễn. Ngày hôm nay (ngày 25 tháng 8 năm 2008) tại San Jose, NVIDIA đã mở màn lần đầu tiên trong lịch sử một hội nghị lớn về điện toán trực quan gọi là NVISION’08. Điểm đặc biệt của hội nghị này là nó bao gồm rất nhiều màn trình diễn đặc sắc về công nghệ trực quan, và có cả một hội nghị kỹ thuật chỉ tập trung bàn về CUDA. Chắc chắn là tôi sẽ nhanh chóng có bài tóm tắt nội dung của SIGGRAPH’08, IDF’08, và NVISION’08 có liên quan đến xử lý song song để học hỏi.