最近, Nvidia不聲不響地修改了GeForce系列顯卡驅動的EULA(使用者授權合約), 加上了這麼一條:
No Datacenter Deployment. The SOFTWARE is not licensed for datacenter deployment, except that blockchain processing in a datacenter is permitted.
翻譯一下:
不允許部署到資料中心。 軟體不被授權部署到資料中心, 但在資料中心進行區塊鏈處理除外。
也就是說, 你買了Nvida的GeForce系列顯卡, 去下載對應驅動的時候, Nvidia要求你同意不在資料中心使用(區塊鏈應用除外), 否則就不給你用。 這管得也太寬了吧!
仔細想想, 誰會在資料中心部署Nvidia的GeForce顯卡?除了Nvidia豁免的區塊鏈之外, 基本就是深度學習了。 那麼, 很明顯, Nvidia就是在針對深度學習!
開源驅動尚不支持CUDA作為一個去Nvidia那裡下載驅動的用戶,
遺憾的是, Nouveau並不支援CUDA。 而絕大多數深度學習框架和庫都依賴於CUDA。
既然開源驅動用不了, 那就捏著鼻子同意這個協議, 繼續用閉源驅動吧。 反正, 對大多數開發者而言, 也沒有那麼多GeForce顯卡要部署到資料中心去。 所以, 雖然噁心, 但好像也沒有什麼實質性的影響。
然而, 果真如此嗎?
別忘了, 顯卡是永遠不夠用的。 當你需要訓練一個深度神經網路, 而當前的顯卡不夠給力或者給力的顯卡被同事、同學甚至你自己的另一個項目佔用的時候, 你可能需要去租用顯卡, 也就是使用GPU雲。
正如我們在深度學習入門該怎麼選GPU一文中提到的, 專業計算卡是為需要很高精度的科學計算設計的, 因此比普通的消費級顯卡貴很多。 而深度學習對於計算精度的要求並不高,
實際上, 這一切已經開始了。 Nvidia不僅修改了EULA, 而且還積極地採取行動貫徹EULA的新條款。 12月21日, 日本著名的雲主機服務商SAKURA就因收到Nvidia的書面通知而宣佈停止提供新Titan X主機。
除了短期內可見的租用GPU雲的成本提升之外, 從長遠來看, 由於不能在資料中心部署平價的消費級顯卡, 也不能租用到相對便宜的GPU雲, 許多大學和科研機構的深度學習研究進度也會相應減緩(是的, 除了少數機構以外,
我想這個問題可以分解成兩個問題:
Nvidia為什麼可以這麼做?
Nvidia為什麼要這麼做?
Nvidia為什麼可以這麼做?答案很簡單。 是因為Nvidia在深度學習領域的壟斷地位。
Nvidia投入深度學習領域較早, 形成了穩固的先發優勢, 深度學習大量標準庫和框架都基於Nvidia的CUDA。
Nvidia特別豁免區塊鏈處理, 也是一個旁證。 在區塊鏈領域, Nvidia顯卡並不具備優勢, AMD的顯卡, 乃至專門定制的礦機, 都比Nvidia顯卡要更受歡迎。
Nvidia為什麼要這麼做?表面上看, 是為了賺取更多的利潤。 但深究下去, 並沒有這麼簡單。 因為Nvidia顯卡在深度學習領域的壟斷地位也確立很久了,
答案是, Nvidia意識到它的壟斷地位實際上岌岌可危。
AMD的Vega Frontier(水冷)性能只比Titan V稍微差一點, 而價格不到Titan V的四分之一!而且Titan V使用的是全新的架構, Vega Frontier使用的還是AMD的舊架構, 在2018年第三季度AMD新顯卡架構推出後, 性能會得到進一步提升。
那Nvidia能不能降價和AMD打價格戰呢?很可惜, 不能!因為AMD找到了壓低成本的長期策略——從32位浮點遷移到16位浮點。
如前所述, 深度學習並不需要那麼高的計算精度。 不僅不需要Nvidia那些專業計算卡那麼高的精度, 甚至連目前的消費級顯卡的精度也不需要。 所以, AMD果斷從32位浮點遷移到16位浮點, 在不影響深度學習和遊戲兩個領域的性能的同時, 進一步拉低成本。 反正AMD的顯卡在科學計算領域也沒有什麼建樹。 而Nvidia並不能跟進這一策略,因為Nvidia不可能放棄高利潤的專業計算卡這塊蛋糕。也就是說,Nvidia在科學計算領域的優勢地位反而成為了它的負擔。
而現在AMD欠缺的是軟體,也就是深度學習各標準庫和框架的支援。
AMD顯卡支持的是OpenCL標準,整個深度學習業界和社區已經在CUDA上投入和積累了大量代碼,在OpenCL上另起爐灶、重頭開始代價太高。
因此AMD應對的策略是投入HIP,HIP可以讓開發者將適用於Nvidia顯卡的CUDA代碼編譯為便於移植的C++代碼,使得同一套代碼可以同時在NVIDIA顯卡和AMD顯卡上運行。這樣,開發者只需維護一套代碼,也不用擔心顯卡廠商lock-in的問題。
目前而言,基於HIP的Tensorflow框架已經可以在AMD顯卡上運行了,雖然現在性能還是被CUDA吊打,但是假以時日,大有可為。
讓Nvidia頭疼的並不僅僅是AMD,還有Intel。Nvidia需要同時兼顧科學計算、深度學習和遊戲三個領域,而AMD只需關心深度學習和遊戲兩個領域。而Intel專門開發的神經網路處理器Nervana只需要關注一個領域。
因此,Nervana可以加上巨大的可程式設計緩存,以及專門設計的資料類型Flexpoint。巨大的可程式設計緩存,配合緩存內演算法和模型,可以大大提升推斷速度,也使得訓練更大的資料(TB級)變得更容易。Flexpoint可以讓我們把更多的資料儲存在緩存和記憶體中,因而顯著加快計算速度。總的來說,和當前的NVIDIA顯卡相比,Nervana可以提升大約10倍的性能!
Nervana欠缺的,和AMD一樣,是標準庫和框架的支援。
在AMD和Intel的包夾下,Nvidia意識到自己的壟斷地位岌岌可危,因此不如趁現在還壟斷著深度學習領域的時候,趕緊撈一筆,多榨取一點利潤是一點。估計Nvidia之前將Titan V定價$3000也是基於同樣的考量。
至於Nvidia榨取了這筆利潤以後是金盆洗手,專注科學計算和遊戲領域,放棄深度學習,還是利用這筆資金加大投入,像AMD和Intel一樣開發全新架構的產品,那就不得而知了。
而Nvidia並不能跟進這一策略,因為Nvidia不可能放棄高利潤的專業計算卡這塊蛋糕。也就是說,Nvidia在科學計算領域的優勢地位反而成為了它的負擔。而現在AMD欠缺的是軟體,也就是深度學習各標準庫和框架的支援。
AMD顯卡支持的是OpenCL標準,整個深度學習業界和社區已經在CUDA上投入和積累了大量代碼,在OpenCL上另起爐灶、重頭開始代價太高。
因此AMD應對的策略是投入HIP,HIP可以讓開發者將適用於Nvidia顯卡的CUDA代碼編譯為便於移植的C++代碼,使得同一套代碼可以同時在NVIDIA顯卡和AMD顯卡上運行。這樣,開發者只需維護一套代碼,也不用擔心顯卡廠商lock-in的問題。
目前而言,基於HIP的Tensorflow框架已經可以在AMD顯卡上運行了,雖然現在性能還是被CUDA吊打,但是假以時日,大有可為。
讓Nvidia頭疼的並不僅僅是AMD,還有Intel。Nvidia需要同時兼顧科學計算、深度學習和遊戲三個領域,而AMD只需關心深度學習和遊戲兩個領域。而Intel專門開發的神經網路處理器Nervana只需要關注一個領域。
因此,Nervana可以加上巨大的可程式設計緩存,以及專門設計的資料類型Flexpoint。巨大的可程式設計緩存,配合緩存內演算法和模型,可以大大提升推斷速度,也使得訓練更大的資料(TB級)變得更容易。Flexpoint可以讓我們把更多的資料儲存在緩存和記憶體中,因而顯著加快計算速度。總的來說,和當前的NVIDIA顯卡相比,Nervana可以提升大約10倍的性能!
Nervana欠缺的,和AMD一樣,是標準庫和框架的支援。
在AMD和Intel的包夾下,Nvidia意識到自己的壟斷地位岌岌可危,因此不如趁現在還壟斷著深度學習領域的時候,趕緊撈一筆,多榨取一點利潤是一點。估計Nvidia之前將Titan V定價$3000也是基於同樣的考量。
至於Nvidia榨取了這筆利潤以後是金盆洗手,專注科學計算和遊戲領域,放棄深度學習,還是利用這筆資金加大投入,像AMD和Intel一樣開發全新架構的產品,那就不得而知了。