
文章目錄
TOPS
GOPS
FLOP與GOPS之間的換算
GOPS與FLOPS
常規神經網絡算力
CPU 處理能力
基于NXP S32V234的ADAS輔助駕駛硬件計算平臺
ROM
片外RAM 與片內RAM
TOPS
TOPS是Tera Operations Per Second的縮寫,1TOPS代表處理器每秒鐘可進行一萬億次(10^12)操作。
與此對應的還有GOPS(Giga Operations Per Second),MOPS(Million Operation Per Second)算力單位。1GOPS代表處理器每秒鐘可進行十億次(109)操作,1MOPS代表處理器每秒鐘可進行一百萬次(106)操作。TOPS同GOPS與MOPS可以換算,都代表每秒鐘能處理的次數,單位不同而已。
在某些情況下,還使用 TOPS/W 來作為評價處理器運算能力的一個性能指標,TOPS/W 用于度量在1W功耗的情況下,處理器能進行多少萬億次操作。
GOPS
OPS與FLOPS類似,只不過OPS一個是操作次數,FLOPS一個是浮點操作次數。
FLOP與GOPS之間的換算
(FLOP與GOPS之間的換算需要查相關資料,后續查找資料給出)
不確定的看法是OPS是操作數量,FLOPS為浮點操作數量,兩者可近似于相等,FLOPS比OPS稍大。
GOPS與FLOPS
1.1 FLOPS
FLOPS定義
是“每秒所執行的浮點運算次數”(floating-point operations per second)的縮寫。它常被用來估算電腦的執行效能,尤其是在使用到大量浮點運算的科學計算領域中。正因為FLOPS字尾的那個S,代表秒,而不是復數,所以不能省略掉。
在這里所謂的“浮點運算”,實際上包括了所有涉及小數的運算。這類運算在某類應用軟件中常常出現,而它們也比整數運算更花時間。現今大部分的處理器中,都有一個專門用來處理浮點運算的“浮點運算器”(FPU)。也因此FLOPS所量測的,實際上就是FPU的執行速度。而最常用來測量FLOPS的基準程式(benchmark)之一,就是Linpack。
FLOPS換算
一個MFLOPS(megaFLOPS)等于每秒一百萬(=10^6)次的浮點運算,
一個GFLOPS(gigaFLOPS)等于每秒十億(=10^9)次的浮點運算,
一個TFLOPS(teraFLOPS)等于每秒一萬億(=10^12)次的浮點運算,(1太拉)
一個PFLOPS(petaFLOPS)等于每秒一千萬億(=10^15)次的浮點運算,
前標的十進制與二進制
此處存在疑問,從M到G再到T,到底是1024近似為1000,還是采用二進制的乘以1024,還是確實為十進制的1000
傾向于FLOP的前標與內存一樣,是以二進制算,每進一級是1024為單位的。
但是10243是1073741824,可以近似為109。所以采用10^3來近似1024問題不大。
常規神經網絡算力
2.1 AlexNet
對于AlexNet處理224*224的圖像,需要1.4GOPS
2.2 ResNet-152
對于224*224的圖像,ResNet-152需要22.6GOPS
例如對于 1080p圖像(像素點個數1920*1280) 的8路 幀率為30FPS的圖像。
22.6GOPS30FPS8路*(1920*1280/224^2)=265Teraop/sec
這個數量級為30張高端顯卡。
2.3 EIE算力
EIE在稀疏網絡上可達102GOPS/s,相當于同等級非稀疏網絡的1TGOPS/s
2.4 一些層的算力
CPU 處理能力
今天在看《ARM權威指南-Cortex-M0》時,遇到一個單位名詞——DMIPS,查找過程中發現幾個相關單位名詞,在此做下記錄。
MIPS(Million Instructions Per Second):字面理解為百萬條指令/秒,即每秒執行百萬級指令數。這是衡量CPU速度的一個指標。像是一個Intel 80386 電腦可以每秒處理3百萬到5百萬機器語言指令,既我們可以說80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指標。
DMIPS(Dhrystone Million Instructions executed Per Second):Dhrystone是測量處理器運算能力的最常見基準程序之一,常用于處理器的整型運算性能的測量。Dhrystone是一種整數運算測試程序。
MFLOPS(Million Floating-point Operations per Second),主要用于測浮點計算能力。
ARM中的MIPS和MHz聯系
以下摘自博客https://blog.csdn.net/bigmarco/article/details/6652659
現如今CPU的頻率越來越高,又是流水線又是超標量計算又是雙核多核的,單純以時鐘頻率來衡量計算機的速度已經不再科學,用MIPS來衡量相對比較合理。以ARM7為內核的S3C44B0X的推薦最高工作頻率為66MHz,按照ARM公司提供的技術資料,ARM7類CPU的運算速度可按如下公式計算:MIPS=0.9×MHz,由此可得出,S3C44B0X的最大運算速度大約為0.9×66MHz=59.4MIPS。6M的51單片機通常是12 或24個時鐘周期才能完成1條指令,乘法和除法指令更需要48個時鐘周期。這樣,我初步估算6M的51單片機的運算速度應該在0.2~0.5MIPS之間。可見8位機與32位機的運算速度還是有巨大的差異的。
再以AVR為例,它的數據吞吐率可達1MIPS/MHz,即1MHz的震蕩頻率可達1MIPS。
綜上,用MIPS衡量計算機速度很合理,對于不同的cpu,它的最高工作頻率不同,數據吞吐率也不同,所以不可一概而論。
基于NXP S32V234的ADAS輔助駕駛硬件計算平臺
https://blog.csdn.net/weixin_42229404/article/details/81190577
ROM
1】rom或者flash,叫程bai序存儲du區,你寫的程序是存在這里面zhi的,上電后從這里面執行。
程序存儲區也分為片內和片外,一般來說,現在的51很多已經做到了64k,所以很少有外擴
片外flash或者片外的rom了,flash或者rom不管是片內還是片外的,只能用來定義常量,是用code來修飾,也就是說,用code來修飾的東西,在程序運行過程中,不能修改;
2】ram有------內部ram的低128位(00-7f),對應c語言就是data,比如我定義一個變量,
data
片外RAM 與片內RAM
STC89C52 共有 512 字節的 RAM,是用來保存數據的,比如我們定義的變量都是直接存在 RAM 里邊的。但是單片機的這 512 字節的 RAM在地位上并不都是平等的,而是分塊的,塊與塊之間在物理結構和用法上都是有區別的,因此我們在使用的時候,也要注意一些問題。
51 單片機的 RAM 分為兩個部分,一塊是片內 RAM,一塊是片外 RAM。標準 51 的片內 RAM 地址從 0x00H~0x7F 共 128 個字節,而現在我們用的 51 系列的單片機都是帶擴展片內 RAM 的,即 RAM 是從 0x00~0xFF 共 256 個字節。片外 RAM 最大可以擴展到 0x0000~0xFFFF 共 64K 字節。這里有一點大家要明白,片內 RAM 和片外 RAM 的地址不是連起來的,片內是從 0x00 開始,片外也是從 0x0000 開始的。還有一點,片內和片外這兩個名詞來自于早期的 51 單片機,分別指在芯片內部和芯片外部,但現在幾乎所有的 51 單片機芯片內部都是集成了片外 RAM 的,而真正的芯片外擴展則很少用到了,雖然它還叫片外 RAM,但實際上它現在也是在單片機芯片內部的,我們的 STC89C52 就是這樣。以下是幾個 Keil C51 語言中的關鍵字,代表了 RAM 不同區域的劃分,大家先記一下。
在這里插入圖片描述
51單片機的片內RAM和片外RAM的區別
data:片內 RAM 從 0x00~0x7F
idata:片內 RAM 從 0x00~0xFF
pdata:片外 RAM 從 0x00~0xFF
xdata:片外 RAM 從 0x0000~0xFFFF
大家可以看出來,data 是 idata 的一部分,pdata 是 xdata 的一部分。為什么還這樣去區分呢?因為 RAM 分塊的訪問方式主要和匯編指令有關,因此這塊內容大家了解一下即可,只需要記住如何訪問速度更快就行了。
我們定義一個變量 a,可以這樣:unsigned char data a=0,而我們前邊定義變量時都沒有加 data 這個關鍵字,是因為在 Keil 默認設置下,data 是可以省略的,即什么都不加的時候變量就是定義到 data 區域中的。data 區域 RAM 的訪問在匯編語言中用的是直接尋址,執行速度是最快的。如果你定義成 idata,不僅僅可以訪問 data 區域,還可以訪問 0x80H~0xFF 的范圍,但加了 idata 關鍵字后,訪問的時候 51 單片機用的是通用寄存器間接尋址,速度較 data會慢一些,而且我們平時大多數情況下不太希望訪問到 0x80H~0xFF,因為這塊通常用于中斷與函數調用的堆棧,所以在絕大多數情況下,我們使用內部 RAM 的時候,只用 data 就可以了。
對于外部 RAM 來說,使用 pdata 定義的變量存到了外部 RAM 的 0x00~0xFF 的地址范圍內,這塊地址的訪問和 idata 類似,都是用通用寄存器間接尋址,而如果你定義成 xdata,可以訪問的范圍更廣泛,從 0 到 64K 的地址都可以訪問到,但是它需要使用 2 個字節寄存器DPTRH 和 DPTRL 來進行間接尋址,速度是最慢的。
我們的 STC89C52 共有 512 字節的 RAM,分為 256 字節的片內 RAM 和 256 字節的片外RAM。一般情況下,我們是使用 data 區域,data 不夠用了,我們就用 xdata,如果希望程序執行效率盡量高一點,就使用 pdata 關鍵字來定義。其它型號有更大的 RAM 的 51 系列單片機,如果要使用更大的 RAM,就必須得用 xdata 來訪問了。
———— / END / ————
注:如有遺漏或錯誤之處請指正,聯系方式如下:
投稿郵箱:ittbank@ittbank.com
ITTBANK客服熱線:25839333
聲明:轉載請注明來源!
