2013-08-20 21 views
5

Desktop i7-4770k @ 4GHz內核的峯值GFLOPS爲4GHz * 8(AVX)*(4 FMA)* 4個內核= 512 GFLOPS。但最新的英特爾IGP(Iris Pro 5100/5200)的峯值超過800 GFLOPS。因此,某些算法在IGP上的運行速度會更快。將內核與IGP結合在一起甚至會更好。此外,IGP不斷吃掉更多的硅。 Iris Pro 5100現在佔據了硅片的30%以上。看起來很清楚英特爾臺式機處理器的方向。但是,據我所見,英特爾IGP,除了OpenCL/OpenGL之外,大多被程序員忽略。我很想知道如何在不使用OpenCL的情況下對英特爾HD Graphics硬件進行計算(例如SGEMM)?在沒有OpenCL的情況下編程Intel IGP(例如Iris Pro 5200)硬件

添加的評論: 他們沒有英特爾對Linux上的高清顯卡和OpenCL的支持。我發現beignet這是開源嘗試至少爲Ivy Bridge HD圖形添加對Linux的支持。我沒有嘗試過。那麼開發Beignet的人可能知道如何在沒有OpenCL的情況下對HD圖形硬件進行編程。

+0

注意:它是[GFLOPS](https://en.wikipedia.org/wiki/FLOPS),而不是[GFLOPs/s](https://en.wikipedia.org/wiki/FLOPS)。你爲什麼要乘以'8(AVX)*(4 FMA)'? –

+0

我改爲GLOPS。 FMA同時進行乘法和加法運算,得到一個2的因子,Haswell可以同時給兩個FMA指令提供另一個2的因子。每個FMA可以執行一個AVX指令,該指令給出另一個8的因子(單個浮點)。 –

+0

GLSL編程? DirectCompute的? PTX? –

回答

4

請記住,將數據複製到視頻卡並返回時性能下降,因此必須將其考慮在內。 AMD接近發佈APU芯片,這些芯片在同一芯片上具有CPU和GPU的統一內存,這對緩解這一問題將有很大幫助。

在CUDA和OpenCL之前使用GPU的方式是使用DirectX或OpenGL代表要作爲紋理進行操作的內存。謝天謝地,我們不必再那麼做了!

AMD真的在推動APU/OpenCL模型,所以更多的程序應該通過OpenCL利用GPU--如果性能存在折衷的話。目前,GPU計算只是一個利基市場,屬於高性能計算或數字處理領域,而網絡瀏覽和文字處理則不需要。

+0

上個世紀之前,我用680x0組件(在我從CS切換到物理之前)對Amiga硬件,blitter等等進行了編程。 CPU之外的硬件通過內存映射寄存器進行編程。英特爾IGP不應該有類似的東西嗎? OpenCL通過視頻驅動程序。我覺得我應該能夠直接寫入硬件並跳過中間人。 –

+2

爲什麼重新發明車輪? OpenCL如何不能滿足您的需求?如果您正在尋找具有高性能的嵌入式解決方案,那麼可能需要使用內置Radeon GPU的AMD主板? – Austin

+0

OpenCL依賴於供應商的設備驅動程序。想象一下,如果您不得不等待英特爾爲您編寫x86設備驅動程序(針對每個操作系統)。沒有人會忍受這一點!上次我檢查時,用於HD 4000的OpenCL驅動程序不支持Linux。也許它現在。供應商可能會停止支持設備驅動程序(Nvidia現在已經將很少量的errort投入OpenCL支持)。由於IGP似乎是臺式機處理器的未來,所以應該可以用C++編寫它們,就像使用內部函數一樣在x86上執行SIMD。 –

4

對於供應商而言,讓您使用低級別ISA進行編程是沒有意義的。

  1. 這是非常困難的,大多數程序員不會使用它。
  2. 它使他們在未來的版本中不能調整ISA。

因此,程序員使用一種語言(如OpenCL中的C99),並且運行時會在用戶的機器上執行特定於ISA的優化。這樣做的一個例子:AMD從VLIW矢量機器切換到標量機器,現有內核仍然運行(大部分運行速度更快)。如果您直接編寫ISA,則無法執行此操作。

+0

是的,我想到了。但x86核心並非如此。這意味着大多數人正在浪費他們大部分的硅(以及計算潛力),特別是如果他們使用獨立GPU。但英特爾已經強制要求桌面用戶。我寧願擁有更多的x86內核。唯一的選擇是OpenCL及其驅動程序。我不認爲英特爾的OpenCL HD驅動程序在Linux上工作。我還沒累[beignet](http://cgit.freedesktop.org/beignet/)。此外,英特爾最新的OpenCL SDK僅在[windows](http://software.intel.com/en-us/vcsource/tools/opencl-sdk)上運行。 –

+0

再說一遍,如果您正在尋找一個基於Linux的小型解決方案,我會推薦一些具有體面集成GPU的便宜AMD硬件。在這一點上,AMD似乎是支持Linux的最佳人選。 – Austin

+0

您是否認爲AMD切換到標量機器是正確的?我認爲你的意思是AMD從VLIW切換到超標量機器。 –

1

在沒有opencl的情況下編寫像iris這樣的協處理器就好像是在沒有方向盤的情況下駕駛汽車。

OpenCL旨在揭示虹膜實現其理論性能所需的必要並行性。你不能只產生100多個線程或進程,並期望性能。大量的線程在做同樣的事情的同時,在類似的內存地址上也是問題的關鍵。

也許你可以考慮一個比opencl更好的範例來實現這個目標;但在你做之前,我建議你嘗試學習一些opencl。如果你進入python; pyopencl是一個很好的開始。

相關問題