#物聯網IoT #虛擬實境VR #分散式協作架構 #霧運算Fog Computing #網路錄影機NVR #閘道器Gateway
#嵌入式處理器 #單一指令多重資料SIMD #加速器accelerator #FPGA #互操作性interoperability #擴展性scalability
【量身打造「合情合理」的 IoT 運算架構】
如何提高物聯網 (IoT) 運作效率?一直是業界關注的議題。除了一股腦兒將龐大資料傳送至雲端、再回饋至終端的原始方式,採用「分散式協作架構」、對後送資料先做預處理的「霧運算」(Fog Computing),似更能實現即時智能回應。現今攝影鏡頭解析度越來越高、檔案越來越大,若將前端視頻訊號直接全數丟到雲端 (資料中心),基礎設施的承載量實在太大;且資料源頭可能有成千上萬個,累積而成的資料量恐怕兩、三年也難以消化。
若能賦予攝影機更好的壓縮能力,在看到影像的同時就做智慧萃取,把真正重要的「資訊」傳送到第二站——網路錄影機 (NVR) 主機或閘道器 (Gateway),進行更深層的運算分析匯整成「知識」後再送至雲端,既能減輕單一主機的負擔,也能提供更好的服務或取得更先進的分析結果。此外,為使效能最大化、極致加速,將 FPGA 作為加速器 (accelerator) 使用,可增加嵌入式應用設計的彈性;善用 FPGA 靈活編程特色,讓開發者依應用情境決定加速器的火力等級。
延伸閱讀:
《Intel:分散式協作「霧運算」更合乎邏輯》
http://compotechasia.com/a/____/2016/1214/34267.html
(點擊內文標題即可閱讀全文)
#英特爾Intel #凌動Atom #QUARK #Core #Xeon #Altera #德爾福Delphi #中國第一汽車FAW #東軟Neusoft #海康威視Hikvision
[本文將於發佈次日下午轉載至 LinkedIn、Twitter 和 Google+ 公司官方專頁,歡迎關注]:
https://www.linkedin.com/company/compotechasia
https://twitter.com/lookCOMPOTECH
https://goo.gl/YU0rHY
單一指令多重資料simd 在 廣宣學堂- Intel AVX 512近日被Linux之父嫌棄 的推薦與評價
身為電腦的基礎語言,一套在市場活躍的指令集架構,也會隨著應用需求而持續擴充,支配伺服器和個人電腦的80x86,其SIMD(單一指令,多重資料)指令集 ... ... <看更多>
單一指令多重資料simd 在 章節.1 量化設計與分析的基礎- Learning Lounge 的推薦與評價
Single instruction stream, multiple data streams(SIMD): 使用者使用單一指令,可以使多個處理器處理各自記憶體中的資料ex. ... <看更多>
單一指令多重資料simd 在 [試題] 101上洪士顥計算機結構期末考- 看板NTU-Exam 的推薦與評價
課程名稱︰ 計算機結構
課程性質︰ 必修
課程教師︰ 洪士顥
開課學院: 電機資訊學院
開課系所︰ 資訊工程學系
考試日期(年月日)︰ 102.1.10
考試時限(分鐘): 150min
是否需發放獎勵金: 是
(如未明確表示,則不予發放)
試題 :
Undergraduated Computer Architecture, Fall 2012
Final Exam, 2013-01-10
If you agree, please sign your name below.
I have not cheated nor have I received any help from other students in the
exam. Student ID & name:______________________
1. [15%] Branch Prediction.
(a) [5%] Why is branch prediction important for processors with long
pipelines? Draw a pipeline explain the problem(s) without branch
prediction, and describe how branch prediction solves the problems(s).
(b) [5%] A program consists of two nested loops, with a single branch
instruction at the end of each loop and no other branch instruction
anywhere. The outer loop is executed 20 times and their inner loop 10
times. What is the maximum accuracy of branch prediction if the branch
predictor uses 2 bit of history for each branch to predict the outcome
of the branches?
(c) [5%] What are the software and hardware methods for improving the accuracy
of branch prediction? What are the advantages and disadvantages of these
methods?
2. [15%] Instruction-Level Parallelism
(a) [5%] Given the following assembly code, if a pipeline processor can issue
two instructions each cycle, what is the average cycle per instruction
(CPI) without changing the code? Assuming the loop is repeated infinite
times and the branch prediction is perfect.
Loop: lw $t0, 0($s1) # $t0=array A[i]
lw $t1, 1024($s1) # $t1=array B[i]
addu $t0, $t0, $t1 # $t0=A[i]+B[i]
sw $t0, 2048($s1) # store result to C[i]
addi $s1, $s1, -4 # decrement pointer
bne $s1, $zero, Loop # branch $s1!=0
(b) [5%] Could you rewrite/restructure the code to improve the CPI for the
two-issue processor?
(c) [5%] Suppose the processor has a SIMD instruction set extension: l4w can
load four words from the memory to a 128-bit register, s4w can store four
words a 128-bit register to the memory, and add4u can add two sets of four
32-bit integers in two 128-bit registers and put the results in the third
128-bit register. Please optimize the code with the SIMD instruction.
3. [20%] Memory Hierarchy
(a) [5%] Consider a 4KB data cache. Each line (block) in the cache contains 8
words. Please draw the architecture of the cache for a direct-mapped
configuration and a 2-way set-associative configuration.
(b) [5%] A problem encountered with direct or even set-associate caches is
thrashing , defined as execessive conflict misses resulting from the
nature of particular memory address patterns. With the direct-mapped
configuration mentioned in 3(a), a single-issue pipelined processor
executes the code mentioned in 2(a). Calculate the CPI to show how
thrashing impacts the performance.
(c) [5%] Following 3(b), what if we change the data cache to 2-way
set-associative, calculate the CPI to show how thrashing impacts the
performance.
(d) [5%] Following 3(b), if you can modify the code, what can you do to
improve the performance? Show your modified code and calculate the CPI.
4. [10%] Virtual Machines
(a) [5%] The notion of "virtual machine" is very popular these days. What is a
virtual machine? What are virtual machine used for?
(b) [5%] What is "virtual machine monitor"? List the functions of a virtual
machine monitor. Describe how a virtual machine monitor works for each
function.
5. [40%] Multicore Systems and Input/Output
Please read this article before answering the following questions...
因為Nvidia早在1999年就推出第一款GPU繪圖卡,2006年時更發表了GPU的開發框架CUDA(
Compute Unified Device Architecture),協助開發人員透過C語言或Fortran語言來運
用GPU的平行運算核心,2008年更推出專供高效能運算用的GPU繪圖卡後,不只超級電腦,
許多HPC高運算伺服器也紛紛搭載Nvidia的GPU繪圖卡,來提高運算效能。 ... 不過,
Nvidia GPU繪圖卡在平行運算領域的地位,開始受到了挑戰。英特爾推出了Xeon Phi協
同處理器來對抗Nvidia的GPU。
英特爾推出超多核心架構的Xeon Phi協同處理器5110P,採用PCIe介面卡設計,可作為HPC
的運算加速卡,單顆處理器內建了60個運算核心,運算效能媲美1臺1997年的超級電腦。
這款處理器採用22奈米製程,時脈1.053GHz,採用常見的PCIe介面卡設計,並搭配被動式
散熱機制,功耗為225瓦,可搭載8GB的GDDR5記憶體。 除了5110P之外,另外還有還將推
出一款更低價的Xeon Phi 3100協同處理器,可支援6GB記憶體,同樣採用22奈米製程,但
熱設計功耗較高,達到300瓦特,預定明年上半年上市,售價將會低於2,000 美元。
英特爾亞太區暨大中華區高效能運算解決方案架構師Scott David表示,因為Xeon Phi協
同處理器延續了Xeon的x86架構,所以,可以沿用平行處理常用的開發語言如C、C++和
Fortran語言,也能沿用原有的平行運算模型,所以,在原有Xeon E5處理器環境中執行的
程式碼,略作調整並重新編譯,也可以在新的Xeon Phi處理器執行環境中,不需要重新改
寫程式碼,就可以提高效能。不過,臺灣大學大資工系副教授洪士灝認為,雖然可以執行
,但要充分發揮Xeon Phi的運算效能,還是得費心調校平行運算的程式。
若用核心數來比較,Nvidia的GPU繪圖卡擁有高達2千多個運算核心,而Xeon Phi介面卡只
搭載一顆Xeon Phi,只有60核心。看起來GPU的核心數比Xeon Phi多很多,但是,洪士灝
認為,Nvidia的GPU繪圖卡和Xeon Phi介面卡,同樣都是可以用來加速HPC平行運算的效能
,但兩者適合的運算架構截然不同,對於平行運算的加速效果,不一定能放在同一個標準
上比較。
臺灣大學大資工系副教授洪士灝表示,GPU類似SIMD架構,而Xeon Phi則是MIMD架構,兩
者的運算架構截然不同,擅長的平行運算任務也不同。HPC常見高效能運算方式有兩種,
第一種是資料平行化的運算方式,也就是Data Parallel,也可稱為Stream計算。這種作
法適合處理大量資料,資料就像水流一樣持續提供給處理器,處理器執行完運算指令後
,處理過的資料不需保存在GPU加速卡中,而是繼續提供下一筆資料給處理器,就像水
流一樣持續流動。洪士灝表示,GPU擅長這種運算方式,運算量不大,也不用保留資料,
處理完就送走。
因為GPU擅長Stream風格的平行計算方式,接近是SIMD(Single Instruction, Multiple
Data,單一指令多重資料)的運算模式,這是指所有運算核心都執行同一個指令,只是作
用在不同的資料上。而Xeon Phi則是MIMD架構(Multiple Instruction, Multiple Data
,多重指令多重資料)的運算模式,Xeon Phi中的60個核心,每個核心都可以處理不同的
指令和不同的資料。正因為如此,每個處理核心彼此需要許多同步和通訊的機制,所以,
Xeon Phi處理核心的電路遠比GPU的核心更複雜。
而SIMD架構的GPU,上千個處理核心會分群執行,例如一次使用256個核心,每個核心都是
同步執行相同的指令,所以,彼此之間不需複雜的通訊或同步機制,而且所有核心可以共
用同一個指令分派元件,所以,單一運算核心的電路可以簡化,就很容易在單一晶片中設
計出大量的運算核心。但是,洪士灝認為,遇到蒙地卡羅模擬這類運算需求,例如汽車碰
撞模擬,要對同樣的資料進行反覆大量運算的需求,GPU就不容易處理。
不過, Xeon Phi介面卡目前內建記憶體只有8GB,有些大型運算任務的資料量容易超過這
樣的規模,程式得先切割資料後才能放入Xeon Phi中計算,這樣作會影響運算效能,所以
,Xeon Phi目前也不一定能滿足這類大型運算的需求。
洪士灝表示,Xeon Phi的處理核心是x86架構,雖然複雜性相當於是十年前的處理器架構
,只是現在集中到同一個晶片中,就像是在一張主機板上有60顆處理器一樣,彼此組成運
算叢集。「若能找到適合這類處理器的應用,這種在單晶片中放入60核心的作法,能以更
低成本來取代現有的伺服器叢集或大型平行運算用的電腦。」他說。
(a) [5%] 以寫作OpenMP程式為例,說明「充分發揮Xeon Phi的運算效能,還是得費心調
校平行運算的程式。」這句話所代表意義。此外,如果拿到的是nVidia的GPU,要怎
麼寫平行程式?
(b) [5%] 假設你收到一台有Xeon Phi 5110P的機器,像要測試這台機器的計算能力,請
將2(a)的程式碼轉換成為C的程式,並且加入讀進輸入兩個各自含有1 Tera筆資料的
檔案和寫出結果存檔的部分,成為完整的C程式,然後將它改寫為OpenMP的程式。
(c) [5%] 請分析以上這個OpenMP程式的效能。在此請先忽略讀寫檔案的時間,假設A[]
和B[]皆已存在於頻寬為320GB/s的DDR5的記憶體上,以文章中所提及的數據,估算
這個程式在Xeon Phi上所需要的執行時間,並指出效能的瓶頸。
(d) [5%] 要充分發揮Xeon Phi的運算效能,除了寫OpenMP程式以外,還要使用到Xeon
Phi每個核心上面所配備的Vector Engine。我們從Intel官網上找到以下的規格資料
,請以此估算如果將你的OpenMP程式進一步作向量化(vectorize)之後,能夠達到的
效能。
Intel® Xeon Phi™ coprocessor 5110P Specifications
Ideal for:
‧Highly parallel applications using over 100 threads
‧Memory bandwidth‐bound applications
‧Applications with extensive vector use
Key Specifications:
‧60 cores/1.053 GHz/240 threads
‧Up to 1 teraflops double-precision performance
‧8 GB memory and 320 GB/s bandwidth
‧Standard PCle* x16 form factor
‧Linux* operating system, IP addressable
‧Supported by the latest Intel® software development products
‧512-bit wide vector engine
‧32KB L1 1/D cache, 512KB L2 cache (per core)
‧8GB DDR5 memory (up to 320GB/s)
‧225W TDP
‧X16 PCle form factor (requires IA host)
‧Host OS: Red Hat Enterprise Linux 6.x, SuSE Linux 12+
(e) [5%] 承上題。現在,讓我們考慮讀取和寫出資料所需的時間。假設輸入的資料存放
在主機(Host)上的記憶體,而且輸出的資料必須傳送到主機的記憶體上。主機是一
台典型的伺服器,配備有一顆3GHz雙核心的Intel Core i7處理器,50GB/s的DDR3
記憶體,而這張Xeon Phi 得加速卡裝置在PCle x16的插槽上。假設這裡的PCle其中
每一條通道(lane)的頻寬是500MB/s,請計算程式的執行時間。
(f) [5%] 承上題。實際上,要處理大量資料,程式的輸出入資料都必須放在硬碟或雲端
儲存空間上,假設主機上裝置了一顆硬碟,其規格如下:512B sector, 10000rpm,
4ms average seek time, 100MB/s data transfer rate (I/O interface), 0.2ms
controller overhead。請計算程式的執行時間,如果主機上可以加掛多顆硬碟,
以RAID5的方式建構,請問需要多少顆硬碟,才能讓硬碟不至於成為效能的瓶頸?
(g) [5%] 承上題,假設我們有32台如上數配備有Xeon Phi的主機,如果A[]循序散佈在
其中十六台主機的主記憶體中,B[]循序散佈在另外16台主機的主記憶體中,每台
機器各自都有一個10Gigabit Ethernet,32台透過一個10Gigabit Ethernet Switch
連接在一起成為cluster。請計算這個cluster可以完成上述程式的最少時間(lower
bound)。
(h) [5%] 承上題。如果我們把Xeon Phi換成nVidia的GPU卡,請說明:
(1) 寫作程式的方式有何不同?
(2) 程式的效能有何不同?
(3) 瓶頸會出現在哪裡?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.136
修正標題
※ 編輯: bztfir 來自: 140.112.30.136 (01/10 15:45)
... <看更多>