您的位置:首頁>正文

悄悄修改GeForce顯卡EULA針對深度學習:Nvidia在害怕什麼?

最近, 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那裡下載驅動的用戶,

看到這麼噁心的條款, 不少人的第一反應大概會是那我乾脆不用Nvidia的驅動了。 由於大部分深度學習框架和庫對Linux的支持是最好的, 所以Linux漸漸成為深度學習的主流開發環境。 而Linux下有Nvidia的開源驅動可以用——協力廠商為Nvidia顯卡開發的Nouveau。

遺憾的是, Nouveau並不支援CUDA。 而絕大多數深度學習框架和庫都依賴於CUDA。

對深度學習的影響

既然開源驅動用不了, 那就捏著鼻子同意這個協議, 繼續用閉源驅動吧。 反正, 對大多數開發者而言, 也沒有那麼多GeForce顯卡要部署到資料中心去。 所以, 雖然噁心, 但好像也沒有什麼實質性的影響。

然而, 果真如此嗎?

別忘了, 顯卡是永遠不夠用的。 當你需要訓練一個深度神經網路, 而當前的顯卡不夠給力或者給力的顯卡被同事、同學甚至你自己的另一個項目佔用的時候, 你可能需要去租用顯卡, 也就是使用GPU雲。

正如我們在深度學習入門該怎麼選GPU一文中提到的, 專業計算卡是為需要很高精度的科學計算設計的, 因此比普通的消費級顯卡貴很多。 而深度學習對於計算精度的要求並不高,

因此專業計算卡對於深度學習而言, 性價比太差。 而現在, 由於Nvidia的EULA中新增的這條禁止性條款, GPU雲服務商無法採購平價的消費級顯卡, 只能轉用昂貴的專業計算卡。 那相應的成本就大大增加了, 這部分增加的成本你覺得會由誰承擔呢?

實際上, 這一切已經開始了。 Nvidia不僅修改了EULA, 而且還積極地採取行動貫徹EULA的新條款。 12月21日, 日本著名的雲主機服務商SAKURA就因收到Nvidia的書面通知而宣佈停止提供新Titan X主機。

除了短期內可見的租用GPU雲的成本提升之外, 從長遠來看, 由於不能在資料中心部署平價的消費級顯卡, 也不能租用到相對便宜的GPU雲, 許多大學和科研機構的深度學習研究進度也會相應減緩(是的, 除了少數機構以外,

大部分大學和科研機構的顯卡同樣不夠用)。 這對每一個深度學習開發者, 甚至是普通人, 都會造成深遠的影響。

Nvidia為什麼這麼做

我想這個問題可以分解成兩個問題:

Nvidia為什麼可以這麼做?

Nvidia為什麼要這麼做?

Nvidia為什麼可以這麼做?答案很簡單。 是因為Nvidia在深度學習領域的壟斷地位。

Nvidia投入深度學習領域較早, 形成了穩固的先發優勢, 深度學習大量標準庫和框架都基於Nvidia的CUDA。

Nvidia特別豁免區塊鏈處理, 也是一個旁證。 在區塊鏈領域, Nvidia顯卡並不具備優勢, AMD的顯卡, 乃至專門定制的礦機, 都比Nvidia顯卡要更受歡迎。

Nvidia為什麼要這麼做?表面上看, 是為了賺取更多的利潤。 但深究下去, 並沒有這麼簡單。 因為Nvidia顯卡在深度學習領域的壟斷地位也確立很久了,

為何直到現在才修改EULA呢?

答案是, 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一樣開發全新架構的產品,那就不得而知了。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示