大家怎樣看 AMD 所提出的 HSA 處理器體系構架?
在AMD公司的slice上看到「GPU計算優勢需要專家級的編程才能發揮」這句話,是說針對GPU編程(CUDA和OpenCL)難以實現嗎?另外大家怎麼看最近兩年內以AMD為首的一些公司提出的HSA(Heterogeneous System Architecture)構架?這會是今後處理器發展的主要方向嗎?(如果是的話,為什麼Intel、Qualcomm、NVIDIA等公司仍處於觀望態度呢?HSA處理器:AMD力推 高通蘋果英偉達觀望)相比APU,我覺得HSA最大的亮點可能就是GPU與CPU統一內存訪問機制(hUMA),那麼這其中有哪些問題仍然需要解決呢?(下圖為通過PCIe匯流排通信的傳統構架)
最後,對於EECS專業碩士,從前景角度講,並且想多學習編程和演算法,但也不拋棄硬體知識,選擇以下哪些課題方向更合適呢?謝謝!
如果 HSA 真正實現 並且 可以簡化GPU編程開發
如果 效率能夠提升20% 那就是巨大的提升了。另外 即使 AMD CPU不是很牛逼 也很有可能翻盤。
因為 以後 GPU運算 AMD 會非常有優勢!而且 雲計算的GPU 部分 很可能 全部優先採用AMD的APU,既然遊戲主機能拿到 那麼雲計算的渲染 也不是沒機會 何況AMD 在技術上 和NV 並沒有什麼差距 工藝另說!作為A粉+3D圖形編程菜鳥 我覺得還是很有期望的。我來胡扯一下。
看了一下paper 感覺基本上就是從硬體層面上通過共享的Page Table支持了Unified Memory Access,這需要CPU的內存管理單元直接支持。而CUDA 6目前應該只是提供了一個統一內存的編程介面,效率如何還有待研究。從CUDA官方的文檔看,想要高性能還是要自己copy memory或者提供hint。
不過至於手動讓GPU prefetch這種優化,我覺得即便有專門的MMU和共享的page table也仍然是需要的,所以AMD的這套東西對於CUDA的解決方案是否有明顯優勢還值得討論。
至於intel,反正他目前的主要市場還是核心顯卡,本來就就共享系統內存的,不存在統一不統一的問題。而要不要讓所有的CPU都去支持Xeon Phi或者其他廠商GPU設備則是個有趣的marketing問題。看當前遊戲改造後提升不大,15-30%的樣子。但是,統一定址後,很多設計實現的思路就要變了,這需要重構引擎,要過幾年才能看出真正效果。舉個例子:現在大多數引擎用gpu算骨骼,但是計算結果沒法拿回來給cpu用,那麼只好再用cpu算個簡化版的。有了hsa就不用這麼麻煩。
扯點歷史吧
當年AMD收購ATi發布了X1900之後順便提出通用計算(DirectX 10引入的新概念統一渲染架構,於是出現流處理器了)這東西,然後也做出了自己的異構計算機,Folding@Home也支持顯卡加速,於是AMD開始涉足通用計算領域,不過當時還不能叫異構運算,AMD叫Fusion(記得沒錯還有個軟體叫Fusion是AMD做遊戲優化的(關閉服務提高遊戲表現)),當初還有個廣告語The Future Is Fusion,12年改為HSA。在RV600時候AMD Stream平台出了(後更名為AMD APP),當時還出現了一個新的計算卡系列FireStream,對應Nvidia的Tesla,嘛,當初Nvidia有CUDA,支持C編程,AMD Stream則有Brook的進化版Brook+(類C)和CAL(彙編),但是推廣明顯不給力。於是被拋棄了,轉而開始尋求DirectCompute和OpenCL,但是實際看貌似也沒出多少力的樣子。CodeXL最初發布的那個直接讓VS崩潰。關於HSA的話AMD硬體一直在做,從HD7970我記得有指令直接讀寫系統內存數據,之後APU的內存控制器也有改進,下代真·統一定址啥的,解決hUMA緩存一致啥的,但是CPU羸弱的要死Store喂不飽內存,顯卡帶寬又不夠。不扯這些的話AMD在PPT里的最終設想是,只需要在宏里稍加區分就能和開發CPU程序一樣開發GPU程序了。我的看法是:話說題主沒注意到高通和imagination也在HSA么。AMD之前在編程工具上有過類似CUDA的東西,在硬體技術上不弱於NVIDIA,而且按照PPT上的目標也是讓程序員可以很容易的使用GPU加速計算,但還是悶聲作大死。主要是推廣不利啊,你東西再好沒人用又怎樣?與其改進技術不如多給點錢做市場推廣,不過Game Evolved還不錯。
以下是引用Tang Weiwen在APU 架構的筆記本電腦和 Sandy Bridge 相競爭主要依靠什麼優勢? 中的答案。
AMD在技術創新上相對intel已經保持了近十年的領先優勢,從64位,直連架構,集成內存控制器,到APU,異構計算架構等。APU對Sandybridge作為現有的競爭對手,主要優勢在於APU DX11 3D加速技術領先於Sandybridge DX10技術至少一代。而雙顯卡交火加速也是APU獨有的強項。APU還可用於多種應用加速,如Steady Video,Office PPT 3D 圖形加速,Adobe、Arcsoft、暴風影音、IE9、火狐等越來越多的軟體都可受益於APU加速。AMD和Apple等業界領袖公司力推的OpenCL代表未來並行編程與目前串列編程的完美結合,而APU在這個未來發展方向上具有很大的優勢。功耗方面APU也有較好的表現,尤其在需要3D圖形加速運算的場景更顯優勢。預計在未來幾年強調超輕薄、低功耗、圖形性能的大趨勢中,APU會越來越佔優勢。而且APU在重整的HSA異構系統架構的新技術發展中也會越來越顯出結構性的優勢。當然AMD面對象哥利亞式的巨人Intel,需要超然的意志、毅力、勇氣和信心及一些奇蹟發生才可能艱難取勝。
太湖之光的申威,Intel新一代 xeon phi,應該和這類似了。
不需要跨PICe進行設備間通訊,從核直接訪問主存,
編程採用openmp或者openacc之類,比什麼cuda、opencl簡單多了
HSA是從硬體上提供統一內存定址,使得各個硬體模塊能直接訪問內存,不用再經過OS將數據導來導去,從而使得硬體可以直接使用應用提供的數據,大大提高了在同一內存帶寬下的內存使用效率!
另外也提出一套軟體解決方案,使得所有兼容HSA的硬體都能兼容通過HSA優化的軟體,從而使得硬體廠商節省系統軟體研發成本,集中於HSA的軟體開發。沒搞過CUDA編程,說一點點題主在題目中說到
相比APU,我覺得HSA最大的亮點可能就是GPU與CPU統一內存訪問機制
看了一下,感覺這個統一內存訪問機制跟CUDA里的Unified Memory似乎沒啥區別啊
如圖Unified Memory in CUDA 6推薦閱讀:
※大家覺得 CUDA 能走多遠?
※Ubuntu16.04無法安裝CUDA嗎?
※顯卡在什麼情況下會燒壞?
※在NVIDIA已经在深度学习硬件形成垄断的情况下,使用那种方案性价比会更高?
※Intel和Nvidia真的在給AMD錢嗎?