網路城邦
上一篇 回創作列表 下一篇  字體:
當CUDA成熟時,我也會用GPU的!現在還不是時候。
2024/02/07 06:54:57瀏覽676|回應0|推薦5

CUDA (Compute Unified Device Architecture,統一計算架構)

現在流行使用ML(機器學習)CNN(類神經網路)等技術來解決影像相關問題,跟傳統影像處理技術的主要差異,就是這些技術需要依賴極大量的資料,加上繁複的統計演算法(如CNN的Convolution)衍伸出來的天文數字的計算量!所以如何替這些技術找到更大更多的計算資源,就是這些新技術能否持續發展的關鍵了!

回到30年前,當我們需要更多計算量與資料量時,電腦產業的回應就是作出更快速更多處理器的CPU與更大的記憶體!如果你夠老(50+)就會記得286386486電腦等名詞,其實就是CPU執行速度的等級,大約只有幾十個MHz的時脈,現在已經是以幾個GHz為計算單位了!記憶體也從幾個M變成幾十G了!但是現在電腦產業發現了另一個新的礦源!

因為影像使用需求的大幅增加,前面大約20年間,一般電腦內的影像顯示卡已經從無到有,進化成一個常規電腦內部的高效能微電腦了!也就是顯示卡內部已經有自己的記憶體與計算核心(GPU)了!因為必須這樣才能專責處理非常大量的影像資料,如串流視訊或線上遊戲需要的即時電腦繪圖等等。

我老人家可以講個有趣的故事給大家聽,早期的電腦是沒有顯示卡這種東西的!所有顯示卡的工作都是CPU與主記憶體在做的!所以讀碩士班寫論文(大約1986年)時,我自己沒有印表機,就用程式在電腦螢幕上繪圖,畫好之後將主記憶體中對應到螢幕的區塊拷貝到磁碟,再拿到巷口賣電腦的商店,將磁片內容載入到他們展示電腦的螢幕記憶體區塊,然後按下Print Screen按鍵就把我畫的圖印出來了!搞得店員滿臉錯愕不知道該不該跟我收費?好玩吧?

你可能不知道你玩的線上遊戲上快速即時又豐富的絢麗畫面,是你自己電腦中的顯示卡畫出來的!不是來自伺服器,也不需要你的CPU幫忙,我當過遊戲設計系的教授,還寫過線上遊戲網路技術的書,我知道的!而且當你同時開好多個視窗看好幾個視訊影片時,你可以去工作管理員視窗看看,你的CPU也是閒閒沒事的,是顯示卡的GPU在忙!

這表示顯示卡本身的計算能力已經非常強大!好像蝙蝠俠身邊的羅賓,或青峰峽身邊的加藤(李小龍),武功已經好到不找他一起出任務去打擊魔鬼很浪費人才了!所以才會有如引用文獻所說的CUDA 技術出現,就是如何讓顯示卡微電腦的計算資源可以讓電腦主程式一體使用?而不是只負責處理視訊與遊戲繪圖。

這當然是一個很好的概念!等於讓一台電腦可以發揮加倍的計算效能!但CPUGPU原本設計的目的不同,好像一輛超級跑車原本設計是要去參加F1賽車的,現在想要他也能隨時兼差當一輛貨車或越野車使用?不是做不到,但是相關的軟硬體工程當然很麻煩!而且我們當然不希望顯示卡失去原有的功能,否則優化CPU不就好了?貨車、越野車與跑車的功能要能隨時切換?這很難吧?

我剛開始聽到這個概念時也充滿期待,我是研發影像辨識軟體的,即使已經避免使用高資料量與計算量的MLCNN技術,要讓辨識軟體功能更強速度更快,我也一樣渴望更多計算能力的!所以我一直很好奇,如何在我習慣使用的程式設計環境叫用顯示卡,也就是GPU的計算資源?最好是我根本不必改寫程式,交代演算任務之後,電腦的作業系統就會自動分配整體運算工作到CPUGPU了!

這其實也是CUDA技術的理想目標,但現在還沒達到,所以要在現有架構下寫程式呼叫使用GPU是很彆扭的!要加裝很多特殊的中介軟體,寫程式的方式也必須大幅改變,還限定特定的硬體才能使用?一旦作業系統或設備相關的軟硬體更新時又不能用了!但是太多人已經把這種過渡期的陣痛當作商機,「提供教學與過渡軟體」的服務大賺其錢了?

如果你只是基於提高計算能力的誘因,不惜成本追求只要能用到GPU就好!但是沒問清楚如此花錢費力勉強用到GPU的經濟效益,你就是一個會賠光老本的笨老闆了!誠如聖嚴法師所說:「你想要的很多,但是需要的不多!」為了實際上還不需要的事情浪費太多時間與金錢,當然會拖垮你的事業了!

我常常被問到我的軟體有沒有用到GPU?隱隱然這也變成一個技術好不好的指標了?碰到這種問題我都是大方回答說:「我沒用GPU!也不需要,我的軟體比用GPU的軟體更快!」這是事實,我的辨識軟體速度仍是業界頂尖的!原因是演算法的優勢,使用GPU沒錯,是CNNML的效率太低,即使有GPU加持也快不過我的!正因為大家都還在瘋迷CNN與ML,我就不必急著搶用GPU了!人家都在原地打轉之中我也就不急於衝刺搶快了嘛!

所以我不急,等到CUDA技術更成熟到我可以省錢輕鬆使用GPU時,我自然會用的!現在盲目跟風搶著使用的人,只是比較願意當白老鼠,水餃沒熟就猛掀鍋蓋而已,他們的技術沒有比我好的!整天追著找()新版工具軟體安裝,還花錢去上課學習如何安裝?只是瞎忙而已,完全不是技術提升!認真研究客戶需求,準確使用更高效率的演算法效益比搶著使用GPU大多了!

更恐怖的是:或許稍後電腦業者發現要實現CUDA架構的成本太高,遠高於直接提升CPU效能,讓GPU與CPU繼續各司其職的原有架構!那麼現在這些硬抝著使用GPU做CPU工作的產業鏈就會整個崩潰了!那會有多少人傾家蕩產啊?希望大家都不要變成受災戶,所以請審慎投資,這些都是理論上與實務上都很可能發生的事情!

( 興趣嗜好運動 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=180320439