我們的cpu叫做**處理器可以用來做各種的計算,但是我們現在的計算機如果要處理圖形輸出的話,特別是三維的影象輸出,乙個比較強的gpu是必不可少的。
比如一幀的影象的輸出計算,其實針對上面的每乙個畫素是有大量的類似的計算在併發進行著的。而我們的gpu就是設計來專門做這樣的計算的。
乙個gpu裡面有很多的計算單元,乙個這樣的計算單元的運算能力肯定比不上cpu中的乙個核心,但是gpu中的計算單元的數量比cpu的核心要多得多。
所以有一些操作gpu有其天生的優勢。下面是gpu支援的一些操作。
map,對於乙個data stream裡面的所有的資料執行乙個函式做資料轉換。
reduce,對於乙個data stream裡面的所有資料進行乙個函式計算得出乙個結果。
stream filtering,資料過濾
scan 是乙個累計操作 輸入的資料流如果是 [a0, a1, a2, a3, ...],那麼scan的輸出就是[a0, a0 + a1, a0 + a1 + a2, a0 + a1 + a2 + a3, ...] 這裡的加號不是指四則運算中的加法,而是任意的乙個操作,只要這個操作滿足結合律以及帶有么元。
scatter 用於把資料從視訊記憶體中做位置搬動用的。輸入乙個index函式作為對映函式就可以把記憶體位置做乙個對映。
gather 是scatter操作的反向操作。
sort 排序
search 對於已經排序資料進行搜尋
可見,gpu支援大量的批量資料操作十分適合用來做很多的大資料操作。
opengl用來驅動gpu進行圖形渲染,我們可以使用opencl來呼叫gpu進行計算運算。
python高階 七 多執行緒併發
一 併發和並行 併發 任務數 cpu核數,通過系統的各任務排程演算法,來回切換,實現多個任務 一起 執行,實際上不是真正同時一起執行,只是切換執行的速度相當快,看上去是一起執行的而已 並行 任務數 cpu核數,是真正的一起同時執行。同步 同步是指 呼叫io操作時,必須等待io操作完成返回才呼叫的方式...
spring mvc 多執行緒併發訪問總結
spring中的bean預設是單例的,這樣如果我們寫的bean是有狀態的就會產生執行緒安全問題,有狀態的bean就是指類中存在例項變數,伺服器會為每個請求開乙個執行緒,這樣當乙個執行緒修改了例項變數,另乙個執行緒訪問的變數就是被修改過的,這就是執行緒不安全的。我們以controller為例,下面是測...
多執行緒併發
多執行緒併發主要有3個方面 1 同步器 主要有synchronized,reentrantlock 訊號量,門栓 countdownlatch 障柵 cyclicbarrier 交換器。2 同步容器 主要包括 對映 集 佇列 對映 concurrenthashmap,concurrentskipli...