CPU、GPU、FPGA、ASIC等AI芯片特性及對比

1、前言

目前,智能駕駛領域在處理深度學習AI算法方面,主要采用GPU、FPGA 等適合并行計算的通用芯片來實現加速。同時有部分芯片企業開始設計專門用于AI算法的ASIC專用芯片,比如谷歌TPU、地平線BPU等。在智能駕駛產業應用沒有大規模興起和批量投放之前,使用GPU、FPGA等已有的通用芯片可以避免專門研發定制芯片(ASIC)的高投入和高風險,但是,由于這類通用芯片設計初衷并非專門針對深度學習,因而存在性能不足、功耗過高等方面的問題。這些問題隨著自動駕駛行業應用規模的擴大將會日益突出。

本文從芯片種類、性能、應用和供應商等多角度介紹AI芯片,用于給行業內入門新人掃盲。

2、什么是人工智能(AI)芯片?

從廣義上講,能運行AI算法的芯片都叫AI芯片。

目前通用的CPU、GPU、FPGA等都能執行AI算法,只是執行效率差異較大。

但狹義上講一般將AI芯片定義為“專門針對AI算法做了特殊加速設計的芯片”。

目前AI芯片的主要用于語音識別、自然語言處理、圖像處理等大量使用AI算法的領域,通過芯片加速提高算法效率。AI芯片的主要任務是矩陣或向量的乘法、加法,然后配合一些除法、指數等算法。AI算法在圖像識別等領域,常用的是CNN卷積網絡,一個成熟的AI算法,就是大量的卷積、殘差網絡、全連接等類型的計算,本質是乘法和加法。

對汽車行業而言,AI芯片的主要用于就是處理智能駕駛中環境感知、傳感器融合和路徑規劃等算法帶來的大量并行計算需求。

AI芯片可以理解為一個快速計算乘法和加法的計算器,而CPU要處理和運行非常復雜的指令集,難度比AI芯片大很多。GPU雖然為圖形處理而設計,但是CPU與GPU并不是專用AI芯片,其內部有大量其他邏輯來實現其他功能,這些邏輯對于目前的AI算法來說完全無用。目前經過專門針對AI算法做過開發的GPU應用較多,也有部分企業用FPGA做開發,但是行業內對于AI算法必然出現專用AI芯片。

3、為什么要用AI芯片?

人工智能從功能上來看包括推理和訓練兩個環節,智能駕駛行業亦然。在訓練環節,通過大數據訓練出一個復雜的神經網絡模型,目前大部分企業在訓練環節主要使用英偉達的GPU集群完成。推理環節是指利用訓練好的模型,使用大量數據推理出各種結論。因此,訓練環節對芯片的算力性能要求比較高,推理環節對簡單指定的重復計算和低延遲的要求很高。

從應用場景來看,人工智能芯片應用于云端和設備端,在智能駕駛領域同樣具備云服務器和車載的各種計算平臺或域控制器,在智能駕駛深度學習的訓練階段需要極大的數據量和大量運算,單一處理器無法獨立完成,因此訓練環節只能在云服務器實現。相對的在設備端即車上,各種ECU、DCU等終端數量龐大,而且需求差異較大。因此,推理環節無法在云端完成,這就要求車上的各種電子單元、硬件計算平臺或域控制器有獨立的推理計算能力,因此必須要有專用的AI芯片來應對這些推理計算需求。

傳統的CPU、GPU都可以拿來執行AI算法,但是速度慢,性能低,尤其是CPU,在智能駕駛領域無法實際投入商用。

比如,自動駕駛需要識別道路、行人、紅綠燈等路況和交通狀況,這在自動駕駛算法里面都是屬于并行計算,如果是CPU去執行計算,那么估計車撞到人了也沒算出來個結果,CPU并行計算速度慢屬于先天不足。如果用GPU速度要快得多,畢竟GPU專為圖像處理并行計算設計,但是GPU功耗過大,汽車的電池無法長時間支撐正常使用,而且GPU價格相對較高,用于自動駕駛量產的話普通消費者也用不起。另外,GPU因為不是專門針對AI算法開發的ASIC,執行AI計算的速度優勢還沒到極限,還有提升空間。

在智能駕駛這樣的領域,環境感知、物體識別等深度學習應用要求計算響應方面必須快!時間就是生命,慢一步就有可能造成無法挽回的情況,但是保證性能快效率高的同時,功耗不能過高,不能對智能汽車的續航里程造成較大影響,也就是AI芯片必須功耗低,所以GPU不是適合智能駕駛的最佳AI芯片選擇。因此開發ASIC就成了必然。

4、AI芯片的種類

當前主流的AI芯片主要分為三類,GPU、FPGA、ASIC。GPU、FPGA均是前期較為成熟的芯片架構,屬于通用型芯片。ASIC屬于為AI特定場景定制的芯片。行業內已經確認CPU不適用于AI計算,但是在AI應用領域也是必不可少,另外一種說法是還有一種類腦芯片,算是ASIC的一種。

FPGA(Field Programmable Gate Array,現場可編程門陣列)具有足夠的計算能力和足夠的靈活性。FPGA的計算速度快是源于它本質上是無指令、無需共享內存的體系結構。對于保存狀態的需求,FPGA中的寄存器和片上內存(BRAM)是屬于各自的控制邏輯的,無需不必要的仲裁和緩存,因此FPGA在運算速度足夠快,優于GPU。同時FPGA也是一種半定制的硬件,通過編程可定義其中的單元配置和鏈接架構進行計算,因此具有較強的靈活性。相對于GPU,FPGA能管理能運算,但是相對開發周期長,復雜算法開發難度大。

ASIC(Application Specific Integrated Circuit特定用途集成電路)根據產品的需求進行特定設計和制造的集成電路,能夠在特定功能上進行強化,具有更高的處理速度和更低的能耗。缺點是研發成本高,前期研發投入周期長,且由于是定制化,可復制性一般,因此只有用量足夠大時才能夠分攤前期投入,降低成本。

4.1?CPU?(CentralProcessing Unit)

中央處理器作為計算機系統的運算和控制核心,是信息處理、程序運行的最終執行單元,CPU 是對計算機的所有硬件資源(如存儲器、輸入輸出單元) 進行控制調配、執行通用運算的核心硬件單元。

優點:CPU有大量的緩存和復雜的邏輯控制單元,非常擅長邏輯控制、串行的運算

缺點:不擅長復雜算法運算和處理并行重復的操作。

對于AI芯片來說,算力最弱的是cpu。雖然cpu主頻最高,但是單顆也就8核,16核的樣子,一個核3.5g,16核也就56g,再考慮指令周期,每秒最多也就30g次乘法。還是定點的。

生產廠商:intel、AMD

4.2?GPU?(GraphicsProcessing Unit)

圖形處理器,又稱顯示核心、視覺處理器、顯示芯片,是一種專門在個人電腦、工作站、游戲機和一些移動設備(如平板電腦、智能手機等)上做圖像和圖形相關運算工作的微處理器。

優點:提供了多核并行計算的基礎結構,且核心數非常多,可以支撐大量數據的并行計算,擁有更高的浮點運算能力。

缺點:管理控制能力(最弱),功耗(最高)。

生產廠商:AMD、NVIDIA

4.3?FPGA(Field Programmable Gate Array)

FPGA是在PAL、GAL等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。?

優點:可以無限次編程,延時性比較低,同時擁有流水線并行和數據并行(GPU只有數據并行)、實時性最強、靈活性最高

缺點:開發難度大、只適合定點運算、價格比較昂貴

生產廠商:Altera(Intel收購)、Xilinx

4.4?ASIC(Application Specific IntegratedCircuit)

ASIC,即專用集成電路,指應特定用戶要求和特定電子系統的需要而設計、制造的集成電路。目前用CPLD(復雜可編程邏輯器件)和 FPGA(現場可編程邏輯陣列)來進行ASIC設計是最為流行的方式之一。

優點:它作為集成電路技術與特定用戶的整機或系統技術緊密結合的產物,與通用集成電路相比具有體積更小、重量更輕、 功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優點。

缺點:靈活性不夠,成本比FPGA貴

主要性能指標:功耗、速度、成本

生產廠商:谷歌、地平線、寒武紀等

4.5?四種芯片的特性總結

CPU是一個有多種功能的優秀領導者。它的優點在于調度、管理、協調能力強,計算能力則位于其次。而GPU相當于一個接受CPU調度的“擁有大量計算能力”的員工。

GPU 作為圖像處理器,設計初衷是為了應對圖像處理中需要大規模并行計算。因此,其在應用于深度學習算法時,有三個方面的局限性:

第一,應用過程中無法充分發揮并行計算優勢。深度學習包含訓練和應用兩個計算環節,GPU 在深度學習算法訓練上非常高效,但在應用時一次性只能對于一張輸入圖像進行處理,并行度的優勢不能完全發揮。

第二,硬件結構固定不具備可編程性。深度學習算法還未完全穩定,若深度學習算法發生大的變化,GPU 無法像FPGA 一樣可以靈活的配置硬件結構。

第三,運行深度學習算法能效遠低于FPGA。學術界和產業界研究已經證明,運行深度學習算法中實現同樣的性能,GPU 所需功耗遠大于FPGA,例如國內初創企業深鑒科技基于FPGA 平臺的人工智能芯片在同樣開發周期內相對GPU 能效有一個數量級的提升。

FPGA,其設計初衷是為了實現半定制芯片的功能,即硬件結構可根據需要實時配置靈活改變。

研究報告顯示,目前的FPGA市場由Xilinx 和Altera 主導,兩者共同占有85%的市場份額,其中Altera 在2015 年被intel以167 億美元收購, Xilinx則選擇與IBM進行深度合作,背后都體現了 FPGA 在人工智能時代的重要地位。

盡管 FPGA 倍受看好,甚至百度大腦、地平線AI芯片也是基于FPGA 平臺研發,但其畢竟不是專門為了適用深度學習算法而研發,實際仍然存在不少局限:

第一,基本單元的計算能力有限。為了實現可重構特性,FPGA 內部有大量極細粒度的基本單元,但是每個單元的計算能力(主要依靠LUT 查找表)都遠遠低于CPU 和GPU中的ALU模塊。

第二,速度和功耗相對專用定制芯片(ASIC)仍然存在不小差距。

第三,FPGA 價格較為昂貴,在規模放量的情況下單塊FPGA 的成本要遠高于專用定制芯片。

人工智能定制芯片是大趨勢,從發展趨勢上看,人工智能定制芯片將是計算芯片發展的大方向。

5、AI芯片算力對比

5.1 通用芯片—GPU

GPU(Graphics Processing Unit)即為圖形處理器。NVIDIA公司在1999年發布GeForce256圖形處理芯片時首先提出GPU的概念。從此NVIDIA顯卡的芯就用這個新名字GPU來稱呼。GPU使顯卡削減了對CPU的依賴,部分替代原本CPU的工作,特別是在3D圖形處理方面。由于在浮點運算、并行計算等方面,GPU可以提供數十倍乃至于上百倍于CPU的性能。

GPU相比CPU更適合人工智能計算。GPU和CPU分別針對的是兩種不同的應用場景,他們的設計目標不同,CPU需要很強的通用性來處理各種不同的數據類型,同時邏輯判斷又會引入大量的分支跳轉和中斷的處理。這些都使得CPU的內部結構異常復雜。而GPU擅長的則是在不需要被打斷的純凈的計算環境中進行類型高度統一的、相互無依賴的大規模數據處理,人工智能的計算恰巧主要是后者,這使得原本為圖像處理而生的GPU在人工智能時代煥發第二春。

CPU的邏輯運算單元(ALU)較少,控制器(control)占比較大;GPU的邏輯運算單元(ALU)小而多,控制器功能簡單,緩存(cache)也較少。架構的不同使得CPU擅長進行邏輯控制、串行計算,而GPU擅長高強度的并行計算。GPU單個運算單元處理能力弱于CPU的ALU,但是數量眾多的運算單元可以同時工作,當面對高強度并行計算時,其性能要優于CPU。現如今GPU除了圖像處理外,也越來越多的運用到別的計算中。

CPU根據功能劃分,將需要大量并行計算的任務分配給GPU。GPU從CPU獲得指令后,把大規模、無結構化的數據分解成許多獨立部分,分配給各個流處理集群(SMM)。每個流處理集群再次把數據分解,分配給調度器,調度器將任務放入自身所控制的計算核心core中完成最終的數據處理任務。

GPU性能較強但功耗較高。以NVIDIA開發的GPU為例,Xavier最高算力為30Tops,功耗為30W,NVIDIA最新發布的GPUA100相比Volta架構的640個Tensor Core,A100核心的TensorCore減少到了432個,但是性能大幅增強,支持全新的TF32運算,浮點性能156TFLOPS,同時INT8浮點性能624TOPS,FP16性能312TFLOPS,同時功耗也達到了400W。

5.2 半定制化芯片—FPGA

FPGA(Field-ProgrammableGate Array),即現場可編程門陣列。它是在PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。

FPGA內部有很多可配置邏輯模塊(CLB),這些模塊是現實邏輯功能的基本單元,FPGA可通過靈活地配置CLB來令其實現工程師想要實現的邏輯功能。FPGA的并行處理能力也很強大,其可編程性也適用于不斷優化的深度學習算法的運算。目前很多公司基于FPGA開發人工智能處理器。于2016年成立的深鑒科技,就在研發深度學習通用解決方案。2016年初,深鑒科技就設計了基于FPGA、針對深度學習的DPU硬件架構。該產品實現了高性能功耗比,并且成本也比GPU產品低很多。今年8月加州的Hot Chips大會上,百度也發布了其基于FPGA芯片的A.I加速芯片—XPU。該芯片有256核,旨在尋求性能和效率的平衡,處理多樣化計算任務。

基于FPGA開發的人工智能處理器具有高性能、低能耗、可硬件編程的特點。

1)高性能

除了GPU,FPGA也擅長并行計算,基于FPGA開發的處理器可以實現更高的并行計算。而且FPGA帶有豐富的片上存儲資源,可以大大減少訪問片外存儲的延遲,提高計算性能,訪問DRAM儲存大約是訪問寄存器存儲延遲的幾百倍以上。

2)低能耗

相比于CPU和GPU,FPGA的能耗優勢主要有兩個原因:1)相比于CPU、GPU,FPGA架構有一定的優化,CPU、GPU需要頻繁的訪問DRAM,而這個能量消耗較大,FPGA可以減少這方面的能耗。2)FPGA的主頻低,CPU和GPU的主頻一般在1-3GHz之間,而FPGA的主頻一般在500MHz一下。因此,FPGA的能耗要低于CPU、GPU。

3)可硬件編程

FPGA可硬件編程,并且可以進行靜態重復編程和動態系統重配置。用戶可像編程修改軟件一樣修改系統的硬件功能,大大增強了系統設計的靈活性和通用性。使得FPGA可以靈活地部署在需要修改硬件設置場景中。

FPGA+CPU異構架構被越來越多地研究和認可。相比于CPU+GPU,因為FPGA的高性能低功耗等優勢使FPGA+CPU可以提供更好的單位功耗性能,且更易于修改和編程。因此FPGA適合做可并行計算的任務,如矩陣運算。如果是一些判斷類的問題,FPGA算得并沒有CPU快。所以已經有研究人員探討FPGA+CPU的架構模式。

5.3?全定制芯片—ASIC

ASIC(Application Specific IntegratedCircuit)在集成電路界被認為是一種為專門目的而設計的集成電路。是指應特定用戶要求和特定電子系統的需要而設計、制造的集成電路。ASIC的特點是面向特定用戶的需求,ASIC在批量生產時與通用集成電路相比具有體積更小、功耗更低、可靠性提高、性能提高、保密性增強、成本降低等優點。簡單地講,ASIC芯片就是通過臺積電等代工廠流片的芯片。目前,基于ASIC的人工智能芯片有地平線BPU、谷歌的TPU。

基于ASIC開發人工智能芯片開發周期較長。基于ASIC開發人工智能芯片更像是電路設計,需要反復優化,需要經歷較長的流片周期,故開發周期較長。

量產后ASIC人工智能芯片成本及價格較低。雖然相較于FPGA, ASIC人工智能芯片需要經歷較長的開發周期,并且需要價格昂貴的流片投入,但是這些前期開發投入在量產后會被攤薄,所以量產后,ASIC人工智能芯片的成本和價格會低于FPGA人工智能芯片。

ASIC芯片性能功耗比較高。從性能功耗比來看,ASIC作為定制芯片,其性能要比基于通用芯片FPGA開發出的各種半定制人工智能芯片更具有優勢。而且ASIC也并不是完全不具備可配置能力,只是沒有FPGA那么靈活,只要在設計的時候把電路做成某些參數可調即可。

ASIC人工智能芯片主要面向消費電子市場。ASIC更高的性能,更低的量產成本以及有限可配置特性,使其主要面向消費電子市場,如寒武紀等公司。

5.4?類腦芯片

類人腦芯片架構是一款基于神經形態的工程,旨在打破“馮·諾依曼”架構的束縛,模擬人腦處理過程,感知世界、處理問題。這種芯片的功能類似于大腦的神經突觸,處理器類似于神經元,而其通訊系統類似于神經纖維,可以允許開發者為類人腦芯片設計應用程序。通過這種神經元網絡系統,計算機可以感知、記憶和處理大量不同的信息。類腦芯片的兩大突破:1、有望形成自主認知的新形式;2、突破傳統計算機體系結構的限制,實現數據并行傳送、分布式處理,能以極低功耗實時處理大量數據。

6、總結

CPU 有強大的調度、管理、協調能力。應用范圍廣。開發方便且靈活。但其在大量數據處理上沒有 GPU 專業,相對運算量低,但功耗不低。

GPU:是單指令、多數據處理,采用數量眾多的計算單元和超長的流水線,如名字一樣,圖形處理器,GPU善于處理圖像領域的運算加速。但GPU無法單獨工作,必須由CPU進行控制調用才能工作。CPU可單獨作用,處理復雜的邏輯運算和不同的數據類型,但當需要大量的處理類型統一的數據時,則可調用GPU進行并行計算。

FPGA:和GPU相反,FPGA適用于多指令,單數據流的分析,因此常用于預測階段,如云端。FPGA是用硬件實現軟件算法,因此在實現復雜算法方面有一定的難度,缺點是價格比較高。將FPGA和GPU對比發現,一是缺少內存和控制所帶來的存儲和讀取部分,速度更快。二是因為缺少讀取的作用,所以功耗低,劣勢是運算量并不是很大。結合CPU和GPU各自的優勢,有一種解決方案就是異構。

ASIC芯片:是專用定制芯片,為實現特定要求而定制的芯片。除了不能擴展以外,在功耗、可靠性、體積方面都有優勢,尤其在高性能、低功耗的移動端。谷歌的TPU、寒武紀的MLU,地平線的BPU都屬于ASIC芯片。谷歌的TPU比CPU和GPU的方案快30-80倍,與CPU和GPU相比,TPU把控制縮小了,因此減少了芯片的面積,降低了功耗。

四種架構將走向哪里?

眾所周知,通用處理器(CPU)的摩爾定律已入暮年,而機器學習和Web 服務的規模卻在指數級增長。

人們使用定制硬件來加速常見的計算任務,然而日新月異的行業又要求這些定制的硬件可被重新編程來執行新類型的計算任務。

將以上四種架構對比,GPU未來的主攻方向是高級復雜算法和通用性人工智能平臺,其發展路線分兩條走:一是主攻高端算法的實現,對于指令的邏輯性控制要更復雜一些,在面向需求通用的AI計算方面具有優勢;二是主攻通用性人工智能平臺,GPU的通用性強,所以應用于大型人工智能平臺可高效完成不同的需求。FPGA更適用于各種細分的行業,人工智能會應用到各個細分領域。

ASIC芯片是全定制芯片,長遠看適用于人工智能。現在很多做AI算法的企業也是從這個點切入。因為算法復雜度越強,越需要一套專用的芯片架構與其進行對應,ASIC基于人工智能算法進行定制,其發展前景看好。類腦芯片是人工智能最終的發展模式,但是離產業化還很遙遠。

幾個品牌的SOC及域控制器做的還是不錯的,尤其是基于NVIDIA Xavier以及前期PX2等芯片的開發。國內大部分企業的應用比較集中在Xavier平臺和Linux系統,尤其是新勢力造車企業,而傳統車企更青睞TI、瑞薩等半導體公司的智能AI芯片以及QNX系統。國內基于Xavier做開發的企業很多,天津優控智行目前的域控制器產品在行業內屬于中等偏上水平,但是其軟件工具和服務做得相對有些優勢,后期有時間也扒一扒地平線、智行者等企業的域控制器學習學習。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252636.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252636.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252636.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

個人博客03

昨天編寫登錄界面、注冊界面的代碼。 今天依舊做這些。 遇到的問題為數據庫連接不上。轉載于:https://www.cnblogs.com/qilin20/p/8068555.html

人工智能Ai芯片層出不窮,GPU、FPGA、ASIC用于人工智能的優勢和劣勢對比

人工智能(AI)主要包括三大要素,分別是數據、算法和算力。其中數據是基礎,正是因為在實際應用當中的數據量越來越大,使得傳統計算方式和硬件難以滿足要求,才催生了AI應用的落地。而算法是連接軟件、數據、應…

dom和bom

先看幾個兩個例題&#xff1a; 星座對應日期&#xff1a; <select id"s1">   <option>a</option>   <option>b</option>   <option>c</option>   <option>d</option>   </select>   <se…

分享自己針對Automation做的兩個成熟的框架(QTP 和Selenium)

自己在google code中開源了自己一直以來做的兩個自動化的框架&#xff0c;一個是針對QTP的一個是針對Selenium的&#xff0c;顯而易見&#xff0c;一個是商業的UI automation工具&#xff0c;一個是開源的自動化工具。 只是代碼&#xff0c;可能你直接看的話&#xff0c;有點不…

全景視頻拼接關鍵技術

一、原理介紹 圖像拼接(Image Stitching)是一種利用實景圖像組成全景空間的技術&#xff0c;它將多幅圖像拼接成一幅大尺度圖像或360度全景圖&#xff0c;圖像拼接技術涉及到計算機視覺、計算機圖形學、數字圖像處理以及一些數學工具等技術。圖像拼接其基本步驟主要包括以下幾…

Part8 多態性 8.1運算符重載

1運算符重載的規則C 幾乎可以重載全部的運算符&#xff0c;而且只能夠重載C中已經有的。不能重載的運算符&#xff1a;“.”、“.*”、“::”、“?:”重載之后運算符的優先級和結合性都不會改變。 重載的兩種形式&#xff1a;   1 重載為類的非靜態成員函數&#xff1b;   …

H面試程序(29):求最大遞增數

要求&#xff1a;求最大遞增數 如&#xff1a;1231123451 輸出12345 #include<stdio.h> #include<assert.h> void find(char *s) {int maxleng 0;int length 1;int pos 0;int i 0;while(s[i] !\0){ if((s[i])<0||(s[i]>9)){assert(0);}if((s[i1]-0) &g…

reorder-list

/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*///思路:通過不同的首結點獲取到不同的尾結點,然后拼接public class Solution {public ListNode get…

四大主流芯片架構(X86、ARM、RISC-V和MIPS)

目前市場上主流的芯片架構有 X86、ARM、RISC-V和MIPS四種&#xff1a; 序號架構特點代表性的廠商運營機構發明時間1X86性能高&#xff0c;速度快&#xff0c;兼容性好英特爾&#xff0c;AMD英特爾1978年2ARM成本低&#xff0c;低功耗蘋果&#xff0c;谷歌&#xff0c;IBM&…

微博預計要火一陣的SleepSort之Shell及C實現

今日在微博看到如此奇妙的代碼。竟然還有新的sort算法&#xff0c;對于我這樣的渣渣必須研究一下&#xff0c;代碼例如以下&#xff1a; #!/bin.bash function f() {sleep "$1" //sleep 這么多secho "$1" }while [ -n "$1" ] //第一個參數不為空…

相關類以及常用方法

1、system&#xff1a;(系統相關類&#xff09; 常用方法&#xff1a; a) : system.arraycopy(制定數組&#xff0c;開始復制的位置&#xff0c;目標數組&#xff0c;開始粘貼的位置&#xff0c;需要復制的長度) 。 將指定源數組中的數組從指定位置復制到目標數組的指定位…

2021-11-15

本文將重點圍繞國產CPU的發展歷程與當前產業鏈各領軍企業的布局情況作詳盡解讀&#xff08;并包含特大號獨家整理的最新進展&#xff09;&#xff0c;具體如下&#xff1a; 1、國產CPU發展歷程回溯 2、飛騰&#xff1a;PK生態的主導者 3、鯤鵬&#xff1a;快速崛起的領導者 …

關于在ubuntu下配置AMD顯卡驅動的總結

同樣先卸載先前版本 代碼:sudo sh /usr/share/ati/fglrx-uninstall.sh代碼:sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*重啟 代碼:sudo reboot下載驅動&#xff0c;右邊直接有ubuntu32位和64位驅動鏈接&#xff1a;http://support.amd.com/en-us/do…

Python3中的hasattr()

Python3已經將此內置函數移除了。查閱Python v3.0 documentation發現可以使用 hasattr(object, name)內置函數來完成callable的功能&#xff0c;方式如下&#xff1a; 3.0之前&#xff1a;callable(func) 3.0之后&#xff1a;hasattr(func, __call__) 這兩者結果是相同的。 轉載…

計算機結構簡圖

北橋,南橋是主板上芯片組中最重要的兩塊了.它們都是總線控制器.他們是總線控制芯片.相對的來講,北橋要比南橋更加重要.北橋連接系統總線,擔負著cpu訪問內存的重任.同時連接這AGP插口,控制PCI總線,割斷了系統總線和局部總線,在這一段上速度是最快的.南橋不和CPU連接通常用來作I/…

原始Ajax

var $ { request:function(obj){ //1. 獲得xmlhttprequest對象兼容性處理 var xhr; //undefined未定義 try{ //主流瀏覽器里面的ajax對象 xhr new XMLHttpRequest(); }catch(e){ //IE低版本的瀏覽器 xhr new ActiveXObject("Microsoft.XMLHTTP"); } //2. 建立和…

Servlet 與 Ajax 交互一直報status=parsererror

Servlet 與 Ajax 交互一直報statusparsererror 原因&#xff1a;servlet 返回的數據不是 Json 格式 1、JS代碼為&#xff1a; 1 var jsonStr {clusterNum:2,iterationNum:3,runTimes:4};2 $.ajax({3 type: "post",4 //http://172.2…

25LINQ拾遺及實例

投影 □ 遍歷數組索引&#xff0c;Select獲取 int[] indexes {0, 2}; string[] strs {"a", "b", "c", "d"}; var result from i in indexes select strs[i]; foreach (string str in result) { Console.Write(str " &quo…

國產CPU的6大品牌,3大路線對比

這些年來&#xff0c;中國最想發展的科技產品是什么&#xff1f;那必須是芯片&#xff0c;特別是2018年中興事件、2019年華為事件之后&#xff0c;國內的芯片產業就徹底地火爆了起來。 按照數據顯示&#xff0c;截止至2020年10月份&#xff0c;國內已經有27萬家芯片企業&#…

BluePrint和ORM

一、藍圖創建 1 #引入庫文件2 from flask import Blueprint,request,jsonify3 4 user Blueprint(5 "site",6 __name__,7 template_floder"templates_folder_path",8 static_floder"static" 9 ) #創建藍圖 10 1…