Amazon EC2 推出新的 GPU 系列機器

這次 Amazon EC2 推出了 G3 instance:「New – Next-Generation GPU-Powered EC2 Instances (G3)」。

這次開放的只有這幾區,亞洲目前還沒有在內:

You can launch these instances today in the US East (Ohio), US East (Northern Virginia), US West (Oregon), US West (Northern California), AWS GovCloud (US), and EU (Ireland) Regions as On-Demand, Reserved Instances, Spot Instances, and Dedicated Hosts, with more Regions coming soon.

這次使用的 GPU 是 Nvidia 的 Tesla M60:

Today we are taking a step forward and launching the G3 instance type. Powered by NVIDIA Tesla M60 GPUs, these instances are available in three sizes (all VPC-only and EBS-only)[.]

G3 (M60) 應該會比 G2 (K520) 快,但未必會比 P2 (K80) 快,尤其是 double precision 的部份,可以參考「Nvidia Tesla」這邊的數據。所以還是得看應用程式才能決定要用 G3 還是 P2...

號稱目前最快的 Terminal 軟體 (因為用 GPU 加速)

看到「Announcing Alacritty, a GPU-accelerated terminal emulator」這個用 GPU 加速 rendering 的 terminal emulator:「Alacritty」。

Alacritty is a blazing fast, GPU accelerated terminal emulator. It’s written in Rust and uses OpenGL for rendering to be the fastest terminal emulator available.

全螢幕全文字的情況下可以到 500 fps:

Alacritty’s renderer is capable of doing ~500 FPS with a large screen full of text. This is made possible by efficient OpenGL usage.

現在支援 Linux 與 macOS,不過要自己編,會比較麻煩一點:

Alacritty currently supports macOS and Linux, and Windows support is planned before the 1.0 release.

Amazon EC2 的大量新資訊

這次 re:InventAmazon EC2 的更新真是有夠多的,總集篇被整理在這邊:「EC2 Instance Type Update – T2, R4, F1, Elastic GPUs, I3, C5」。

先是 F1 系列提供 FPGA 能力:「Developer Preview – EC2 Instances (F1) with Programmable Hardware」。

再來是 T2 系列提供更大台的機器,不過往上提供的 CPU 級距還是 1.5 倍 (費用是 2 倍),主要還是給量還不夠大的使用者使用,如果夠大的就應該換去 C 系列,加上 auto scaling 的方式降低成本:「New T2.Xlarge and T2.2Xlarge Instances」。

另外一個大賣點是 GPU 變成可以掛在各種機器上,雖然還沒推出:「In the Works – Amazon EC2 Elastic GPUs」:

Today, you have the ability to set up freshly created EBS volumes when you launch new instances. You’ll be able to do something similar with Elastic GPUs, specifying the desired size during the launch process, with the option to stop, modify, and then start a running instance in order to make a change.

最後是推出了 R4、I3 與 C5 系列,主要是在於硬體升級而更新。

Amazon EC2 的 P2 instance

Amazon EC2 為了 GPU 而推出的 P2 type:「New P2 Instance Type for Amazon EC2 – Up to 16 GPUs」。

p2.large 有這樣的規格:

This new instance type incorporates up to 8 NVIDIA Tesla K80 Accelerators, each running a pair of NVIDIA GK210 GPUs. Each GPU provides 12 GB of memory (accessible via 240 GB/second of memory bandwidth), and 2,496 parallel processing cores.

而最大台的 p2.16xlarge 也就是 16 倍... 每小時單價也刷新了之前 x1.32xlarge 的記錄 $13.338/hr (us-east-1),來到了 $14.4/hr...

另外也推出了 deep learning AMI,內裝了一堆常見支援 GPU 的 ML framework:

In order to help you to make great use of one or more P2 instances, we are launching a Deep Learning AMI today.

PostgreSQL 上,直接將 SSD 的內容送到 GPU 上,加速讀取速度

PostgreSQL 上針對讀取檔案到 GPU 上的成果:「GpuScan + SSD-to-GPU Direct DMA」(日文版)、「(EN) GpuScan + SSD-to-GPU Direct DMA」(英文版)。

主要的原因在於雖然已經有 PGStorm 讓 PostgreSQL 把運算丟到 GPU 上加速,但從 disk 讀到 GPU 這段還是有改善的空間:

PG-Strom that is an extension of PostgreSQL to off-load multiple SQL workloads on GPU devices, transparently. It has been developed for four years, and now supports simple scan, tables join, aggregation and projection.
Its prime focus is CPU intensive workloads, on the other hands, it didn't touch storage subsystem of PostgreSQL because the earlier version of PG-Strom assumes all the data set shall be pre-loaded onto physical memory. No need to say, we had a problem when we want to process a data-set larger than physical RAM.

這是成果,可以看到速度快了一倍以上:

這對資料量超過 RAM 大小時的處理會非常有幫助 (因為會有大量的 disk i/o 發生)。

hashcat v3.00

hashcat 是個用暴力法拿來計算各種 reverse hash 的的工具,也就是對於 HASH(key) = value 時,給 value 的值,要求得出 key 的值 (被稱為 Preimage attack)。

雖然是暴力法,但還是花了很多力氣加速,尤其在這個 GPU 已經很常見的年代,這套軟體也支援透過 GPU 加速運算。

先前的版本是 CPU 與 GPU 分開兩個版本可以用 (CPU 版本的叫 hashcat,GPU 版本的叫做 oclHashcat),而 GPU 的版本只支援 nVidiaAMD 兩家大廠的顯卡。

而在 v3.00 版,透過 OpenCL 的界面將這些全部都合而為一了:「hashcat v3.00」,所以不只是支援 CPU 與 nVidia + AMD 的 GPU,還包括了:

  • GPU
  • CPU
  • APU
  • DSP
  • FPGA
  • Coprocessor
  • Anything else which comes with an OpenCL runtime

也特別提到,Intel CPU 上內建的 GPU 部份也可以拿來用了:

For example, Intel CPUs will now instantly pop up as an available OpenCL device after you've installed the Intel OpenCL runtime.

也因為透過 OpenCL,如果有多種不同類型的加速方式,新版 hashcat 也可以同時使用。

另外這次效能評估 (與舊版比較) 也做出來了:「hashcat 2.01 / 3.00 performance comparison」,可以看到比較新一點的卡整體都有進步,而舊的卡有可能是對 OpenCL 的最佳化或是 overhead 比較敏感,慢了不少...

用 FPGA 破 WPA2

Twitter 上看到「Efficient High-Speed WPA2 Brute Force Attacks using Scalable Low-Cost FPGA Clustering」這篇論文,講比較便宜的 FPGA 破 WPA2 的最佳化。主要的成果可以從表格看到,這是 FPGA 的:

Ztex 1.15y 應該是「USB-FPGA Module 1.15y: Quad-Spartan 6 LX150 FPGA Board with USB 2.0 Microcontroller」這組,而 Ztex 2.16 應該是「USB-FPGA Module 2.16: Artix 7 XC7A200T FPGA Board with USB 2.0」,價位 (美金) 也都標在上面了。

而這是 GPU 的效能:

可以看出來 FPGA 的速度還蠻快的,但用電相當省。不過不得不說 WPA2 用的 PBKDF2 的確讓破解的難度高了很多,讓我想到這個:

AlphaGo 不是使用 GPU 加速...

Google 今天公佈的資料中說明了 AlphaGo 不是用一般常見的 GPU 加速運算:「Google supercharges machine learning tasks with TPU custom chip」。

這是特別為 TensorFlow 製作的 ASIC:

The result is called a Tensor Processing Unit (TPU), a custom ASIC we built specifically for machine learning — and tailored for TensorFlow.

而 AlphaGo 用的版本是 TPU 版:

AlphaGo was powered by TPUs in the matches against Go world champion, Lee Sedol, enabling it to "think" much faster and look farther ahead between moves.

放 AlphaGo 的機櫃長這樣:

通常 ASIC 特製的版本會比 FPGA 或是 GPU 快上許多,這代表目前這些沒有大公司撐腰的圍棋軟體要跟 AlphaGo 拼,除非演算法上有重大的突破,不然就得用更大量的設備跟他換...

把塗鴉透過深度類神經網路轉成油畫...

看到「Neural Doodle」這個專案,可以把塗鴉轉成帶有油畫筆觸的圖:

看起來是實作新的演算法:

Use a deep neural network to borrow the skills of real artists and turn your two-bit doodles into masterpieces! This project is an implementation of Semantic Style Transfer (Champandard, 2016), based on the Neural Patches algorithm (Li, 2016).

另外一組範例:

程式可以用純 CPU 跑,也可以用 GPU 跑,不管哪種都很吃記憶體 XDDD