不知火舞的被虐|伊人天伊人天天综合网|博洛尼亚天气|任你懆这里只有精品4|久久美日韩精品久久|掌中之物漫画免费阅读观看|0丨d老妇

數(shù)組操作的案例

[問題討論]使用Python學(xué)習(xí)CFD初級(jí)理論系列一數(shù)操作(7/10)
numpy的數(shù)值計(jì)算實(shí)際上調(diào)用的是c語(yǔ)言操作,按道理計(jì)算速度應(yīng)該不會(huì)慢才對(duì)。 1 numpy的數(shù)組操作 在計(jì)算量集中的程序中,使用numpy內(nèi)置的函數(shù)操作能夠有效地提高計(jì)算性能。下面來舉一個(gè)例子,考慮到CFD中經(jīng)常會(huì)遇到如下的迭代式: 假設(shè)給定初始值,可以通過迭代計(jì)算得到的值。 采用迭代方法的代碼可寫成以下形式。 import numpy as np u = np.array([0,1,2,3,4,5]) un= u.copy() for i in range(1,len(u)): print(u[i] - u[i-1]) 輸出結(jié)果為: 1 1 1 1 1 其實(shí)可以改用numpy內(nèi)置數(shù)組操作來實(shí)現(xiàn),代碼寫成以下形式。 import numpy as np u = np.array([0,1,2,3,4,5]) print(u[1:] - u[0:-1]) 輸出結(jié)果為: [1 1 1 1 1] 兩者結(jié)果一致。這里采用numpy數(shù)組分片功能來進(jìn)行計(jì)算,來看看u[1:]與u[0:-1]到底是多少。
展開
GPU的巨大壓力即將來臨
它們提供 SIMD(單指令多數(shù)據(jù))處理單元,可以加速?gòu)?fù)雜的并行數(shù)組操作。正如人們經(jīng)常指出的那樣,HPC GPU 市場(chǎng)在一定程度上要?dú)w功于規(guī)模大得多(約 7 倍)的游戲市場(chǎng),它幫助支付了硬件成本,讓游戲玩家能夠飛越星系,同時(shí)允許科學(xué)家模擬星系。 加密貨幣市場(chǎng)改變了這種低端動(dòng)態(tài)。就加密貨幣而言,游戲 GPU 非常擅長(zhǎng)快速查找唯一數(shù)字并產(chǎn)生熱量。市場(chǎng)需求相當(dāng)高,但由于加密市場(chǎng)的不斷發(fā)展,需求似乎正在下降。 在高端,情況就完全不同了。根據(jù)雅虎財(cái)經(jīng)的一篇文章,Reports Insights 的一份報(bào)告預(yù)測(cè): “受圖形處理器 (GPU) 科學(xué)模擬、數(shù)據(jù)分析和人工智能需求不斷增長(zhǎng)的推動(dòng),全球圖形處理器 (GPU) 市場(chǎng)預(yù)計(jì)在 2022 年至 2030 年期間復(fù)合年增長(zhǎng)率為 33.5%?!?數(shù)據(jù)顯示,2022 年,GPU 市場(chǎng)估值為447 億美元,預(yù)計(jì)到 2030 年將達(dá)到4509 億美元。GPU 市場(chǎng)的增長(zhǎng)可歸因于游戲、娛樂和數(shù)據(jù)中心等各種最終用途行業(yè)對(duì)高級(jí)圖形和高質(zhì)量視覺體驗(yàn)的需求不斷增長(zhǎng)。虛擬和增強(qiáng)現(xiàn)實(shí)的日益普及以及人工智能和機(jī)器學(xué)習(xí)的進(jìn)步也促進(jìn)了 GPU 市場(chǎng)的增長(zhǎng)。隨著高性能 GPU 需求的增長(zhǎng),市場(chǎng)有望在未來幾年大幅增長(zhǎng),為市場(chǎng)參與者帶來大量機(jī)會(huì)。 然而,對(duì)于 GPU 市場(chǎng)供應(yīng)商來說,這是個(gè)好消息,對(duì)于最終用戶來說,LLM(大型語(yǔ)言模型,例如 ChatGPT)的增長(zhǎng)創(chuàng)造了對(duì)嚴(yán)格意義上不屬于傳統(tǒng) HPC 市場(chǎng)一部分的 GPU 的新需求。 以 Inflection AI 為例,該公司正在開發(fā)一種名為“Pi”的“個(gè)人人工智能”聊天機(jī)器人。為了實(shí)現(xiàn)這一目標(biāo),該公司建造了一臺(tái)配備 22,000 個(gè) NVIDIA H100 GPU 的 超級(jí)計(jì)算機(jī)。
展開
ANSYS中的變量
*VFILL命令可以用來填充一個(gè)一般的數(shù)組或表數(shù)組的列向量。具體見ANSYS幫助文檔。 例如: *VFILL,LABEL(1),DATA,'S1','S2','S3','S4','S5' 3)用*VREAD或者*TREAD命令。*VREAD或者*TREAD命令可將數(shù)據(jù)文件填充到數(shù)組中去。具體見ANSYS幫助文檔。 3:數(shù)組參數(shù)的刪除與標(biāo)量參數(shù)相同。 4:數(shù)組參數(shù)操作的GUI。Utility Menu->Parameters->Array Parameters。下面又四個(gè)子菜單,可以進(jìn)行上述所有的操作。 【更多資訊信息請(qǐng)關(guān)注《CAE技術(shù)聯(lián)盟》官方微信】
展開
【干貨分享】關(guān)于CPU的12個(gè)硬核干貨!
11 通過地址和索引實(shí)現(xiàn)數(shù)組 接下來是基址寄存器和變址寄存器,通過這兩個(gè)寄存器,可以對(duì)主存上的特定區(qū)域進(jìn)行劃分,以此實(shí)現(xiàn)類似數(shù)組操作。 首先,可以用十六進(jìn)制數(shù)將計(jì)算機(jī)內(nèi)存上的00000000 - FFFFFFFF的地址劃分出來。 這樣,凡是該范圍的內(nèi)存地址,只要有一個(gè)32位的寄存器,就可以查看全部地址。 但是,要是想像數(shù)組那樣,分割特定的內(nèi)存區(qū)域以達(dá)到連續(xù)查看的目的的話,使用兩個(gè)寄存器會(huì)更方便一些,比如,我們用兩個(gè)寄存器來表示內(nèi)存的值。 這種表示方式很像數(shù)組的構(gòu)造,數(shù)組是指同樣長(zhǎng)度的數(shù)據(jù),在內(nèi)存中進(jìn)行連續(xù)排列的數(shù)據(jù)構(gòu)造。 用數(shù)組名表示數(shù)組全部的值,通過索引來區(qū)分數(shù)組的各個(gè)數(shù)據(jù)元素,例如: a[0] - a[4],[]內(nèi)的 0 - 4 就是數(shù)組的下標(biāo)。 12 CPU指令執(zhí)行過程 那說了這么多,CPU到底是怎么一條條的執(zhí)行指令的呢?幾乎全部的馮·諾伊曼型計(jì)算機(jī)的CPU,工作都可以分為5個(gè)階段:取指令、指令譯碼、執(zhí)行指令、訪存取數(shù)、結(jié)果寫回。
展開
數(shù)組操作圖1
Ansys Zemax | 如何建立LCD背光源模型
所需的優(yōu)化函數(shù)已經(jīng)在當(dāng)前文件中定義,打開評(píng)價(jià)函數(shù)編輯器如下圖所示: 用操作數(shù)5和8分別用于最大化空間均勻性和總光通量,用操作數(shù)10和11來控制光強(qiáng)分布的質(zhì)心,用操作數(shù)13用來控制光強(qiáng)分布的均方根半徑。希望輸出光線不是完全平行的,而是限制在一定的視角范圍內(nèi),因此,指定了30°作為目標(biāo)視角。最后一組操作數(shù) (15-18) 是邊界約束,以防止陣列變得太大或太小,當(dāng)無邊界約束時(shí),優(yōu)化會(huì)有產(chǎn)生極限解的趨勢(shì)。注意這些操作數(shù)的負(fù)數(shù)權(quán)重,它們就像拉格朗日乘數(shù)一樣工作,迫使目標(biāo)得以實(shí)現(xiàn)。 優(yōu)化分配的變量如下: 球面物體:半徑 陣列物體:Number X’ & Y’, Delta1 X’ & Y’, Delta2 Y’ 由于對(duì)稱性的考慮,陣列只需要在y方向上是非線性的。因此只在X方向上分配線性陣列的間距 (Delta1 X ') 。此外,優(yōu)化時(shí)很可能不需要陣列的三階和四階參數(shù)可變,所以不將其設(shè)為變量。 如果給變量一個(gè)有限初始值,而不是從零開始,通常會(huì)使優(yōu)化更有效。為了確定二階y方向的起始點(diǎn),查看通用繪圖并與評(píng)價(jià)函數(shù)中的值進(jìn)行對(duì)比。打開一維通用圖(分析 (Analysis) >通用繪圖 (Universal Plot))并應(yīng)用以下設(shè)置。 點(diǎn)擊OK鍵,并進(jìn)行繪圖更新;這個(gè)過程可能需要幾分鐘,具體所需時(shí)長(zhǎng)取決于電腦的速度。根據(jù)下圖,將陣列物體上的“ Delta2 Y ”參數(shù)設(shè)置為5E-3。 背光源設(shè)計(jì)形式是固定的,只需要優(yōu)化陣列參數(shù)??紤]到這一事實(shí),使用正交下降 (OD) 算法進(jìn)行錘形優(yōu)化對(duì)于達(dá)到目標(biāo)非常有效。錘形優(yōu)化在長(zhǎng)時(shí)間運(yùn)行時(shí)性能最好,完成之后可以確定沒有與起點(diǎn)相似的更好的設(shè)計(jì)。在運(yùn)行錘形優(yōu)化約20小時(shí)后,OpticStudio得出了具有良好空間均勻性和可接受的發(fā)光強(qiáng)度的解。
展開
Ansys Zemax光學(xué)設(shè)計(jì)軟件技術(shù)教程:如何建立LCD背光源模型
所需的優(yōu)化函數(shù)已經(jīng)在當(dāng)前文件中定義,打開評(píng)價(jià)函數(shù)編輯器如下圖所示: 用操作數(shù)5和8分別用于最大化空間均勻性和總光通量,用操作數(shù)10和11來控制光強(qiáng)分布的質(zhì)心,用操作數(shù)13用來控制光強(qiáng)分布的均方根半徑。希望輸出光線不是完全平行的,而是限制在一定的視角范圍內(nèi),因此,指定了30°作為目標(biāo)視角。最后一組操作數(shù) (15-18) 是邊界約束,以防止陣列變得太大或太小,當(dāng)無邊界約束時(shí),優(yōu)化會(huì)有產(chǎn)生極限解的趨勢(shì)。注意這些操作數(shù)的負(fù)數(shù)權(quán)重,它們就像拉格朗日乘數(shù)一樣工作,迫使目標(biāo)得以實(shí)現(xiàn)。 優(yōu)化分配的變量如下: 球面物體:半徑 陣列物體: Number X’ & Y’, Delta1 X’ & Y’, Delta2 Y’ 由于對(duì)稱性的考慮,陣列只需要在y方向上是非線性的。因此只在X方向上分配線性陣列的間距 (Delta1 X ') 。此外,優(yōu)化時(shí)很可能不需要陣列的三階和四階參數(shù)可變,所以不將其設(shè)為變量。 如果給變量一個(gè)有限初始值,而不是從零開始,通常會(huì)使優(yōu)化更有效。為了確定二階y方向的起始點(diǎn),查看通用繪圖并與評(píng)價(jià)函數(shù)中的值進(jìn)行對(duì)比。打開一維通用圖(分析 (Analysis) >通用繪圖 (Universal Plot))并應(yīng)用以下設(shè)置。 點(diǎn)擊OK鍵,并進(jìn)行繪圖更新;這個(gè)過程可能需要幾分鐘,具體所需時(shí)長(zhǎng)取決于電腦的速度。根據(jù)下圖,將陣列物體上的“ Delta2 Y ”參數(shù)設(shè)置為5E-3。 背光源設(shè)計(jì)形式是固定的,只需要優(yōu)化陣列參數(shù)??紤]到這一事實(shí),使用正交下降 (OD) 算法進(jìn)行錘形優(yōu)化對(duì)于達(dá)到目標(biāo)非常有效。錘形優(yōu)化在長(zhǎng)時(shí)間運(yùn)行時(shí)性能最好,完成之后可以確定沒有與起點(diǎn)相似的更好的設(shè)計(jì)。在運(yùn)行錘形優(yōu)化約20小時(shí)后,OpticStudio得出了具有良好空間均勻性和可接受的發(fā)光強(qiáng)度的解。
展開
Ansys Zemax | 如何建立LCD背光源模型
所需的優(yōu)化函數(shù)已經(jīng)在當(dāng)前文件中定義,打開評(píng)價(jià)函數(shù)編輯器如下圖所示: 用操作數(shù)5和8分別用于最大化空間均勻性和總光通量,用操作數(shù)10和11來控制光強(qiáng)分布的質(zhì)心,用操作數(shù)13用來控制光強(qiáng)分布的均方根半徑。希望輸出光線不是完全平行的,而是限制在一定的視角范圍內(nèi),因此,指定了30°作為目標(biāo)視角。最后一組操作數(shù) (15-18) 是邊界約束,以防止陣列變得太大或太小,當(dāng)無邊界約束時(shí),優(yōu)化會(huì)有產(chǎn)生極限解的趨勢(shì)。注意這些操作數(shù)的負(fù)數(shù)權(quán)重,它們就像拉格朗日乘數(shù)一樣工作,迫使目標(biāo)得以實(shí)現(xiàn)。 優(yōu)化分配的變量如下: 球面物體:半徑 陣列物體:Number X’ & Y’, Delta1 X’ & Y’, Delta2 Y’ 由于對(duì)稱性的考慮,陣列只需要在y方向上是非線性的。因此只在X方向上分配線性陣列的間距 (Delta1 X ') 。此外,優(yōu)化時(shí)很可能不需要陣列的三階和四階參數(shù)可變,所以不將其設(shè)為變量。 如果給變量一個(gè)有限初始值,而不是從零開始,通常會(huì)使優(yōu)化更有效。為了確定二階y方向的起始點(diǎn),查看通用繪圖并與評(píng)價(jià)函數(shù)中的值進(jìn)行對(duì)比。打開一維通用圖(分析 (Analysis) >通用繪圖 (Universal Plot))并應(yīng)用以下設(shè)置。 點(diǎn)擊OK鍵,并進(jìn)行繪圖更新;這個(gè)過程可能需要幾分鐘,具體所需時(shí)長(zhǎng)取決于電腦的速度。根據(jù)下圖,將陣列物體上的“ Delta2 Y ”參數(shù)設(shè)置為5E-3。 背光源設(shè)計(jì)形式是固定的,只需要優(yōu)化陣列參數(shù)。考慮到這一事實(shí),使用正交下降 (OD) 算法進(jìn)行錘形優(yōu)化對(duì)于達(dá)到目標(biāo)非常有效。錘形優(yōu)化在長(zhǎng)時(shí)間運(yùn)行時(shí)性能最好,完成之后可以確定沒有與起點(diǎn)相似的更好的設(shè)計(jì)。
展開
數(shù)字信號(hào)處理
它可以一次獲取各種操作數(shù)。 它可以串行獲取操作數(shù)。 地址和數(shù)據(jù)總線在數(shù)字信號(hào)處理器中多路復(fù)用 地址和數(shù)據(jù)總線在微處理器中未多路復(fù)用 15 數(shù)字信號(hào)處理的基本原理是什么? 數(shù)字信號(hào)處理基礎(chǔ)包括重要術(shù)語(yǔ),因此有助于理解信號(hào)的操作: ? 采樣:這是將連續(xù)模擬信號(hào)采樣為數(shù)字信號(hào)的過程。 ? 量化: 這是將數(shù)字編號(hào)分配給計(jì)算的模擬信號(hào)的過程。它將一測(cè)量值組成一有限值。 ? 離散傅里葉變換 (DFT):此方法將離散時(shí)間信號(hào)轉(zhuǎn)換為其頻域。它有助于了解信號(hào)中存在的各種頻率。 ? 快速傅里葉變換 (FFT):該算法非常有效,可以快速執(zhí)行 DFT。此外,DFT 的先進(jìn)技術(shù)有助于快速、更高效地探索信號(hào)。 16 數(shù)字信號(hào)處理系統(tǒng)的應(yīng)用 數(shù)字信號(hào)處理 (DSP) 系統(tǒng)因其在處理數(shù)字信號(hào)方面的多功能性和有效性而在各個(gè)領(lǐng)域都有應(yīng)用。DSP 系統(tǒng)的一些常見應(yīng)用包括: ? 電信:DSP 系統(tǒng)用于對(duì)移動(dòng)電話、VoIP 和視頻會(huì)議等電信中的語(yǔ)音和視頻信號(hào)進(jìn)行編碼、解碼和壓縮。這些用于錯(cuò)誤檢測(cè)和糾正、調(diào)制/解調(diào)。 ? 音頻處理:DSP 系統(tǒng)涉及多種音頻技術(shù),如濾波、均衡和降噪,如語(yǔ)音識(shí)別、更好的音頻質(zhì)量以及其他各個(gè)領(lǐng)域。 ? 圖像處理: DSP 系統(tǒng)用于執(zhí)行圖像過濾、壓縮和識(shí)別等應(yīng)用中的各種任務(wù),包括數(shù)碼相機(jī)、醫(yī)學(xué)成像(MRI、CT 掃描)、衛(wèi)星成像和其他各個(gè)領(lǐng)域。 ? 雷達(dá)和聲納系統(tǒng):DSP 系統(tǒng)對(duì)于處理雷達(dá)和聲納信號(hào)非常重要,用于國(guó)防、航空和其他各個(gè)領(lǐng)域的目標(biāo)檢測(cè)、跟蹤、距離估計(jì)和干擾緩解。 ? 控制系統(tǒng):DSP 系統(tǒng)管理用于反饋控制、濾波的數(shù)字系統(tǒng)算法,管理機(jī)器人、汽車系統(tǒng)和其他各種領(lǐng)域的應(yīng)用。
展開
干貨|手把手教你寫單片機(jī)的指針
數(shù)組的地址賦值給指針,然后用指針操作數(shù)組 #include "sys.h" #include "led.h" #include "delay.h" #include "usart.h" char temp[3]={1,2,3}; char *p; int main(void) { uart_init(115200);//串口初始化 delay_init(); p=temp;//將數(shù)組名賦值給指針變量p,p就指向數(shù)組temp的首地址 printf("value0 = %d\r\n",*p); //p就代表數(shù)組的第一個(gè)數(shù)據(jù)的地址 printf("value1 = %d\r\n",*(p+1));//p+1就代表數(shù)組的第二個(gè)數(shù)據(jù)的地址 printf("value2 = %d\r\n",*(p+2));//p+2就代表數(shù)組的第三個(gè)數(shù)據(jù)的地址 printf("temp[0] = %d\r\n",p[0]);//p[0]等同于temp[0] printf("temp[1] = %d\r\n",p[1]);//p[1]等同于temp[1] printf("temp[2] = %d\r\n",p[2]);//p[2]等同于temp[2] while(1) { } } 5、函數(shù)的形參是一個(gè)指針 #include "sys.h" #include "led.h" #include "delay.h" #include "usart.h" char temp[3]={1,2,3}; void function(char *value) { printf("value0 = %d\r\n",value[0]); printf("value1 = %d\r\n",value[1
展開
干貨|嵌入式C代碼的十種優(yōu)化方案
一、選擇合適的算法和數(shù)據(jù)結(jié)構(gòu) 選擇一種合適的數(shù)據(jù)結(jié)構(gòu)很重要,如果在一堆隨機(jī)存放的數(shù)中使用了大量的插入和刪除指令,那使用鏈表要快得多。數(shù)組與指針語(yǔ)句具有十分密切的關(guān)系,一般來說,指針比較靈活簡(jiǎn)潔,而數(shù)組則比較直觀,容易理解。對(duì)于大部分的編譯器,使用指針比使用數(shù)組生成的代碼更短,執(zhí)行效率更高。 在許多種情況下,可以用指針運(yùn)算代替數(shù)組索引,這樣做常常能產(chǎn)生又快又短的代碼。與數(shù)組索引相比,指針一般能使代碼速度更快,占用空間更少。使用多維數(shù)組時(shí)差異更明顯。下面的代碼作用是相同的,但是效率不一樣。 數(shù)組索引 指針運(yùn)算 For(;;){ p=array A=array[t++]; for(;;){ a=*(p++); ............................... } } 指針方法的優(yōu)點(diǎn)是,array的地址每次裝入地址p后,在每次循環(huán)中只需對(duì)p增量操作。在數(shù)組索引方法中,每次循環(huán)中都必須根據(jù)t值求數(shù)組下標(biāo)的復(fù)雜運(yùn)算。 二、使用盡量小的數(shù)據(jù)類型 能夠使用字符型(char)定義的變量,就不要使用整型(int)變量來定義;能夠使用整型變量定義的變量就不要用長(zhǎng)整型(long int),能不使用浮點(diǎn)型(float)變量就不要使用浮點(diǎn)型變量。當(dāng)然,在定義變量后不要超過變量的作用范圍,如果超過變量的范圍賦值,C編譯器并不報(bào)錯(cuò),但程序運(yùn)行結(jié)果卻錯(cuò)了,而且這樣的錯(cuò)誤很難發(fā)現(xiàn)。
展開
【轉(zhuǎn)載】程序人生-我已經(jīng)努力了七年(轉(zhuǎn)載)
我現(xiàn)在寫的這個(gè)操作系統(tǒng),編譯后我把程序反編譯成匯 編,找出其中不優(yōu)化的代碼,然后在C程序中進(jìn)行調(diào)整。舉個(gè)例子,很多CPU沒有專門的乘法指令,這個(gè)大家應(yīng)該都知道,在這種CP U上進(jìn)行一個(gè)乘法操作常常會(huì)花費(fèi)大量的指令周期,有的朋友會(huì)說這個(gè)我知道,我會(huì)盡量避免采用×號(hào),但是事情往往不是那么簡(jiǎn)單,你 知道C語(yǔ)言中數(shù)組的下標(biāo)操作是怎么實(shí)現(xiàn)的嗎?仔細(xì)看看反匯編的代碼你就會(huì)明白,同樣是通過下標(biāo)的定位操作,C編譯器會(huì)有時(shí)候會(huì)產(chǎn) 生位移指令,但有時(shí)候會(huì)用乘法實(shí)現(xiàn),兩者效率往往是天壤之別,所以明白這些問題你才能將系統(tǒng)性能提升到極致。這些問題就不多說了 ,有興趣的話以后可以共同探討。      話說遠(yuǎn)一點(diǎn),我由衷的希望在軟件上做的比較深入的朋友們有機(jī)會(huì)學(xué)學(xué)硬件以及其它相關(guān)知識(shí),尤其是做底層開發(fā)和嵌入式設(shè)計(jì)的。 這對(duì)軟件技術(shù)的提高有非常大的幫助,否則很多事情你只知道該這樣但不會(huì)明白為什么該這樣。我這個(gè)觀點(diǎn)在我現(xiàn)在的IC公司Proj ect Manager那里也得到了驗(yàn)證。他告訴我們公司現(xiàn)在的802.11芯片產(chǎn)品的軟件經(jīng)理原本是做該芯片硬件設(shè)計(jì)的,某某某原本是 做軟件的,現(xiàn)在在做IC,類似的例子還有很多,只是在國(guó)內(nèi)這樣的風(fēng)氣不是非常流行。      我有一些心得體會(huì)與大家分享,只有當(dāng)我干好本職工作后,我才會(huì)學(xué)習(xí)與工作關(guān)系不大的技術(shù),這樣公司的上司才不至于反感,在入 門階段的問題我通常不去問那些資深人士,而是問一些資歷比較淺的朋友,比如剛畢業(yè)不久的學(xué)生,因?yàn)樗麄兺鶗?huì)跟你詳細(xì)的講解,而 資深人士通常覺得你的問題太簡(jiǎn)單,所以回答的也很簡(jiǎn)單,我又不好意思多問。等技術(shù)上了一定的層次后我才會(huì)問他們,他們也能給你比 較深入的回答。
展開
數(shù)組操作圖2