chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

谷歌在內(nèi)存方面依賴于per memcg lru lock

Linux閱碼場(chǎng) ? 來(lái)源:Linuxer ? 作者:Linuxer ? 2021-01-15 14:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

自電子計(jì)算機(jī)誕生以來(lái),內(nèi)存性能一直是行業(yè)關(guān)心的重點(diǎn)。內(nèi)存也隨著摩爾定律,在大小和速度上一直增長(zhǎng)?,F(xiàn)在的阿里云服務(wù)器動(dòng)輒單機(jī)接近TB的內(nèi)存大小,加上數(shù)以百記的CPU數(shù)量也著實(shí)考驗(yàn)操作系統(tǒng)的資源管理能力。

作為世間最流行的操作系統(tǒng)Linux, 內(nèi)核使用LRU, Last Recent Used 鏈表來(lái)管理全部用戶使用的內(nèi)存,用一組鏈表串聯(lián)起一個(gè)個(gè)的內(nèi)存頁(yè),并且使用lru lock來(lái)保護(hù)鏈表的完整性。

b3ca29b4-56f1-11eb-8b86-12bb97331649.png

所有應(yīng)用程序常用操作都會(huì)涉及到LRU鏈表操作,例如,新分配一個(gè)頁(yè),需要掛在inactive lru 鏈上, 2次訪問(wèn)同一個(gè)文件地址, 會(huì)導(dǎo)致這個(gè)頁(yè)從inactive 鏈表升級(jí)到active 鏈表, 如果內(nèi)存緊張, 頁(yè)需要從active 鏈表降級(jí)到inactive 鏈表, 內(nèi)存有壓力時(shí),頁(yè)被回收導(dǎo)致被從inactive lru鏈表移除。不單大量的用戶內(nèi)存使用創(chuàng)建,回收關(guān)系到這個(gè)鏈表, 內(nèi)核在內(nèi)存大頁(yè)拆分,頁(yè)移動(dòng),memcg 移動(dòng),swapin/swapout, 都要把頁(yè)移進(jìn)移出lru 鏈表。

可以簡(jiǎn)單計(jì)算一下x86服務(wù)器上的鏈表大?。簒86最常用的是4k內(nèi)存頁(yè), 4GB 內(nèi)存會(huì)分成1M個(gè)頁(yè), 如果按常用服務(wù)器256GB頁(yè)來(lái)算, 會(huì)有超過(guò)6千萬(wàn)個(gè)頁(yè)掛在內(nèi)核lru 鏈表中。超大超長(zhǎng)的內(nèi)存鏈表和頻繁的lru 操作造成了2個(gè)著名的內(nèi)核內(nèi)存鎖競(jìng)爭(zhēng), zone lock, 和 lru lock. 這2個(gè)問(wèn)題也多次在阿里內(nèi)部造成麻煩, 系統(tǒng)很忙, 但是業(yè)務(wù)應(yīng)用并沒(méi)得到多少cpu時(shí)間, 大部分cpu都花在sys上了。一個(gè)簡(jiǎn)單2次讀文件的benchmark可以顯示這個(gè)問(wèn)題, 它可以造成70%的cpu時(shí)間花費(fèi)在LRU lock上。

作為一個(gè)知名內(nèi)核性能瓶頸, 社區(qū)也多次嘗試以各種方法解決這個(gè)問(wèn)題, 例如,使用更多的 LRU list, 或者LRU contention 探測(cè)。

但是都因?yàn)楦鞣N原因被linux 內(nèi)核拒絕。

尋找解決方案

通過(guò)仔細(xì)的觀察發(fā)現(xiàn), 內(nèi)核在2008年引進(jìn)內(nèi)存組-memcg以來(lái), 系統(tǒng)單一的lru lists已經(jīng)分成了每個(gè)內(nèi)存組一個(gè)lru list, 由每個(gè)內(nèi)存組單獨(dú)管理自己的lru lists。那么按道理lru lock的contention應(yīng)該有所減小啊?為什么還是經(jīng)常在內(nèi)部服務(wù)器觀察到lru lock hot引起的sys 高?

原來(lái), 內(nèi)核在引入per memcg lru lists后,并沒(méi)有使用per memcg lru lock, 還在使用舊的全局lru lock 來(lái)管理全部memcg lru lists. 這造成了本來(lái)可以自治的memcg A, 卻要等待memcg B 釋放使用的lru lock。然后A拿起的lru lock又造成 memcg C的等待。。。

那么把全局lru lock拆分到每一個(gè)memcg中, 不是可以理所當(dāng)然的享受到了memcg獨(dú)立的好處了嗎?這樣每個(gè)memcg 都不會(huì)需要等待其他memcg 釋放lru lock。鎖競(jìng)爭(zhēng)限制在每個(gè)memcg 內(nèi)部了。

b426b940-56f1-11eb-8b86-12bb97331649.png

要完成lru lock 拆分,首先要知道lru lock 保護(hù)了多少對(duì)象, 通常情況中, page lru lock需要保護(hù)lru list完整性, 這個(gè)是必須的。與lru list相關(guān)的還有page flags中的lru bit,這個(gè)lru bit用作頁(yè)是否在lru list存在的指示器, 可以避免查表才能知道頁(yè)是否在list中。那么lru lock保護(hù)它也說(shuō)的通。

但是lru lock 看起來(lái)還有一些奇怪的保護(hù)對(duì)象,承擔(dān)了一些不屬于它的任務(wù):

1.PageMlock bit,保護(hù) munlock_vma 和split_huge_page 沖突,

其實(shí), 上述2個(gè)函數(shù)在調(diào)用鏈中都需要 page lock, 所以沖突可以完全由page lock來(lái)保證互斥。這里lru lock使用屬于多余。

2.pagecache xa_lock和memcg->move_lock,

xa_lock并沒(méi)有需要lru lock保護(hù)的場(chǎng)景,這個(gè)保護(hù)也是多余。相反,lru lock放到xa_lock 之下, 符合x(chóng)a_lock/lock_page_memcg, 的使用次序。反而可以優(yōu)化 lru lock 和 memcg move_lock的關(guān)系。

3.lru bit in page_idle_get_page, 用在這里是因?yàn)閾?dān)心 page_set_anon_rmap中, mapping 被提前預(yù)取訪問(wèn),造成異常。用memory barrier 方式可以避免這個(gè)預(yù)取, 所以可以在page idle中撤掉lru lock.

+ WRITE_ONCE(page->mapping, (struct address_space *) anon_vma);

經(jīng)過(guò)這樣的修改, lru lock 可以在memory lock 調(diào)用層次中降級(jí)到最底層。

b46d8b40-56f1-11eb-8b86-12bb97331649.png

這時(shí), lru lock已經(jīng)非常簡(jiǎn)化,可以用per memcg lru lock來(lái)替換全局的lru lock了嗎?還不行,使用per memcg lru lock 有一個(gè)根本問(wèn)題,使用者要保證 page所屬的memcg不變,但是頁(yè)在生命周期中是可能轉(zhuǎn)換memcg的,比如頁(yè)在memcg之間migration,導(dǎo)致 lru_lock隨著memcg變化, 拿到的lru lock是錯(cuò)誤的,好消息是memcg 變化也需要先拿到lru lock鎖,這樣我們可以獲得lru lock之后檢查這個(gè)是不是正確的鎖:

b4a700dc-56f1-11eb-8b86-12bb97331649.png

如果不是, 由反復(fù)的relock 來(lái)保證鎖的正確性。bingo! 完美解決!

由此, 這個(gè)feature曲折的upstream 之路開(kāi)始了。。。

最終解決

這個(gè)patchset 2019年發(fā)出到社區(qū)之后, google的 Hugh Dickins 提出, 他和facebook的Konstantin Khlebnikov 同學(xué)已經(jīng)在2011發(fā)布了非常類(lèi)似的patchset,當(dāng)時(shí)沒(méi)有進(jìn)主線。不過(guò)google內(nèi)部生產(chǎn)環(huán)境中一直在使用。所以現(xiàn)在Hugh Dickins發(fā)出來(lái)他的upstream版本。關(guān)鍵路徑和我的版本是一樣的

2個(gè)相似patchset的PK, 引起了memcg 維護(hù)者Johannes 的注意, Johannes發(fā)現(xiàn)在compaction的時(shí)候, relock并不能保護(hù)某些特定場(chǎng)景:

b55f3e36-56f1-11eb-8b86-12bb97331649.png

所以他建議,也許增加原子的lru bit操作作為 lru_lock 的前提也許可以保護(hù)這個(gè)場(chǎng)景。Hugh Dickins 則不認(rèn)為這樣會(huì)有效,并且堅(jiān)持他patchset已經(jīng)在google內(nèi)部用了9年了。一直安全穩(wěn)定。。。

Johannes的建議的本質(zhì)是使用lru bit代替lru lock做page isolation互斥,但是問(wèn)題的難點(diǎn)在其他地方, 比如在通常的一個(gè)swap in 的場(chǎng)景中:

b5bc905e-56f1-11eb-8b86-12bb97331649.png

swap in 的頁(yè)是先加入lru, 然后charge to memcg, 這樣造成頁(yè)在加入lru 時(shí),并不知道自己會(huì)在那個(gè)memcg上, 我們也拿不到正確的per memcg lru_lock, 所以上面場(chǎng)景中左側(cè)CPU 即使提前檢查PageLRU 也找不到正確的lru lock 來(lái)阻止右面cpu的操作, 然并卵。

正確的解決方案, 就是上面第9步移動(dòng)到第7步前面, 在加入lru前charge to memcg. 并且在取得lru lock之前檢查lru bit是否存在, 這樣才可以保證我們可以拿到的是正確的memcg 的lru lock。由此提前清除/檢查lru bit的方法才會(huì)有效。這個(gè)memcg charge的上升, 在和Johannes討論后, Johannes在5.8 完成了代碼實(shí)現(xiàn)并且和入主線。

在新的代碼基礎(chǔ)上, 增加了lru bit的原子操作TestClearPageLRU, 把lru bit移出了lru lock的保護(hù),相反用這個(gè)bit來(lái)做page isolation的互斥條件, 用isolation來(lái)保護(hù)頁(yè)在memcg間的移動(dòng), 讓lru lock只完成它的最基本任務(wù), 保護(hù)lru list完整性。至此方案主體完成。lru lock的保護(hù)對(duì)象也由6個(gè)減小到一個(gè)。編碼實(shí)現(xiàn)就很容易了。

b61bc128-56f1-11eb-8b86-12bb97331649.png

測(cè)試結(jié)果

方案完成后, 上面提到的file readtwice 測(cè)試中,多個(gè)memcg的情況下,lru lock 競(jìng)爭(zhēng)造成的sys 從70% 下降了一半,throughput 提高到260%。(80個(gè)cpu的神龍機(jī)器)

b652d294-56f1-11eb-8b86-12bb97331649.png

Upstream過(guò)程

經(jīng)過(guò)漫長(zhǎng)4輪的逐行review, 目前這個(gè)feature 已經(jīng)進(jìn)入了 linus的 5.11 https://github.com/torvalds/linux

第一版patch 發(fā)到了社區(qū)后, google的skakeel butt立刻提出, google曾經(jīng)在2011發(fā)過(guò)一樣的patchset來(lái)解決 per memcg lru lock 問(wèn)題。所以,skakeel 要求我們停止自己開(kāi)發(fā), 基于google的版本來(lái)解決這個(gè)問(wèn)題。然后我才發(fā)現(xiàn)真的2011年 google Hugh Dickins 和 Facebook Konstantin Khlebnikov 就大約同時(shí)提出類(lèi)似的patchset。, 但是當(dāng)時(shí)引起的關(guān)注比較少,也缺乏benchmark來(lái)展示補(bǔ)丁的效果, 所以很快被社區(qū)遺忘了。不過(guò)google內(nèi)部則一直在維護(hù)這組補(bǔ)丁,隨他們內(nèi)核版本升級(jí)。

對(duì)比google的補(bǔ)丁, 我們的實(shí)現(xiàn)共同點(diǎn)都是使用relock來(lái)確保page->memcg線性化, 其他實(shí)現(xiàn)細(xì)節(jié)則不盡相同。測(cè)試表明我們的patch性能更好一點(diǎn)。于是我基于自己的補(bǔ)丁繼續(xù)修改并和Johannes討論方案改進(jìn)。這也導(dǎo)致了以后每一版都有g(shù)oogle同學(xué)的反對(duì):我們的測(cè)試發(fā)現(xiàn)你的patchset 有bug, 請(qǐng)參考google可以工作的版本。并在linux-next上發(fā)現(xiàn)一個(gè)小bug時(shí)達(dá)到頂峰:https://lkml.org/lkml/2020/3/6/627 google同學(xué)批評(píng)我們抄他們的補(bǔ)丁還抄出一堆bug.

b6a804d0-56f1-11eb-8b86-12bb97331649.png

其實(shí)這些補(bǔ)丁和Hugh Dickins的補(bǔ)丁毫無(wú)關(guān)聯(lián), 并且在和Johannes的持續(xù)討論中,解決方案的核心:page->memcg的線性化已經(jīng)進(jìn)化了幾個(gè)版本了, 從relock 到 lock_page_memcg, 再到TestClearPageLRU. 和google的補(bǔ)丁是路線上的不同。

面對(duì)這樣的無(wú)端指責(zé),memcg 維護(hù)者 Johannes 看不下去, 出來(lái)說(shuō)了一些公道話:我和Alex同學(xué)都在嘗試和你不同的方案來(lái)解決上次提出的compacion沖突問(wèn)題,而且我記得你當(dāng)時(shí)是覺(jué)得這個(gè)沖突你無(wú)能為力的:

b7422466-56f1-11eb-8b86-12bb97331649.png

之后google同學(xué)分享了他們的測(cè)試程序,然后在這個(gè)話題上沉默了一段時(shí)間。

后來(lái)memcg charge的問(wèn)題解決后, 就可以用lru bit來(lái)保證page->memcg互斥了。v17 coding很快完成后。intel 的Alexander Duyck, 花了5個(gè)星期, 逐行逐字的review整個(gè)patchset, 并其基于補(bǔ)丁的改進(jìn), 提出了一些后續(xù)優(yōu)化補(bǔ)丁。5個(gè)星期的review, 足以讓一個(gè)feature 錯(cuò)過(guò)合適的內(nèi)核upstream 窗口。但是也增強(qiáng)了社區(qū)的信心。

(重大內(nèi)核的feature 的merge窗口是這樣的:大的feature 在進(jìn)入linus tree之前, 要在linux-next tree 待一段時(shí)間, 主要的社區(qū)測(cè)試如Intel LKP, google syzbot 等等也會(huì)在著重測(cè)試Linux-next。所以為了保證足夠的測(cè)試時(shí)間, 進(jìn)入下個(gè)版本重要feature 必須在當(dāng)前版本的rc4之前進(jìn)入linux-next。而當(dāng)前版本-rc1通常bug比較多, 所以最佳rebase 版本是 rc2, 錯(cuò)過(guò)最佳merge 窗口 rc2-rc4. 意味著需要在等2個(gè)月到下一個(gè)窗口。并且還要適應(yīng)新的內(nèi)核版本的相關(guān)修改。)

基于5.9-rc2的 v18 版本完成后, google hugh dickins同學(xué)強(qiáng)勢(shì)歸來(lái),主動(dòng)申請(qǐng)測(cè)試和review,根據(jù)他的意見(jiàn)v18 做了很多刪減和合并,甚至推翻了一些Alexander Duyck要求的修改。patch 數(shù)量從32個(gè)壓縮到20個(gè)。Hugh Dickin 逐行review 了整整4個(gè)星期。也完美錯(cuò)過(guò)了5.10和入窗口。之后v19, Johannes 同學(xué)終于回來(lái)開(kāi)始review. Johannes比較快,一個(gè)星期就完成了review?,F(xiàn)在v20, 幾乎每個(gè)patch 都有了2個(gè)reviewed-by: Hugh/Johannes.

然而, 這次不像以前, 以前 patchset 沒(méi)有人關(guān)心, 這次大家的review興趣很大,來(lái)了就停不住, SUSE的 Vlastimil Babka 同學(xué)又過(guò)來(lái)開(kāi)始review, 并且提出了一些coding style 和代碼解釋要求。不過(guò)被強(qiáng)勢(shì)的Hugh Dickins 駁回:

b781fed8-56f1-11eb-8b86-12bb97331649.png

Hugh 的影響力還是很大的, Vlastimil 和其他潛在的reivewer都閉上了嘴。代碼終于進(jìn)了基于5.10-rc 的 linux-next。不過(guò)這個(gè)駁回也引起一個(gè)在5.11提交窗口的麻煩, memory總維護(hù)者 Andrew Morthon突然發(fā)現(xiàn)Vlastimil Babka 表示過(guò)一些異議。所以他問(wèn)我:是不是輿論還不一致, 還有曾經(jīng)推給你一個(gè)bug, 你解決了嗎?

I assume the consensus on this series is 'not yet"?

Hugh再次出來(lái)護(hù)場(chǎng):我現(xiàn)在覺(jué)得patchset 足夠好了, 足夠多人review過(guò)足夠多的版本了, 已經(jīng)在linux-next 安全運(yùn)行一個(gè)多月了,沒(méi)有任何功能和性能回退, Vlastimil也已經(jīng)沒(méi)有意見(jiàn)了。至于那個(gè)bug, Alex有足夠的證據(jù)表明和這個(gè)補(bǔ)丁無(wú)關(guān)。。。

b7cd8df8-56f1-11eb-8b86-12bb97331649.png

最終這個(gè)patchset享受到了Andrew 向 Linus單獨(dú)推送的待遇。進(jìn)了5.11。

后記

在 Linux 上游做事情,有很多成就感,也可以保證自己需要的feature,一直在線, 免去了內(nèi)核升級(jí)維護(hù)之苦。但也會(huì)面臨荊棘和險(xiǎn)阻, 各種內(nèi)部不關(guān)心的場(chǎng)景都要照顧到, 不能影響其他任何人的feature。所以相比coding, 大量的社區(qū)討論大概是coding的3~5倍時(shí)間,主要是反復(fù)的代碼解釋和修改.

在整個(gè)upstreaming的過(guò)程中特別值得一提的是一些google的同學(xué)態(tài)度轉(zhuǎn)變, 從一開(kāi)始的反對(duì),到最后加入我們。從google方面來(lái)說(shuō), google在內(nèi)存方面有很多優(yōu)化都依賴于per memcg lru lock. 這個(gè)代碼加入內(nèi)核也解除了他們9年來(lái)的代碼維護(hù)痛苦。

原文標(biāo)題:memcg lru lock 血淚史

文章出處:【微信公眾號(hào):Linuxer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

    213681
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7142

    瀏覽量

    125545

原文標(biāo)題:memcg lru lock 血淚史

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場(chǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    擺脫依賴英偉達(dá)!OpenAI首次轉(zhuǎn)向使用谷歌芯片

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)近日,據(jù)知情人士透露,OpenAI近期已開(kāi)始租用谷歌的張量處理單元(TPU),為旗下ChatGPT等熱門(mén)產(chǎn)品提供算力支持。這一舉措不僅標(biāo)志著OpenAI首次實(shí)質(zhì)性
    的頭像 發(fā)表于 07-02 00:59 ?6965次閱讀

    時(shí)間的力量:RTC如何賦能萬(wàn)物精準(zhǔn)運(yùn)行?

    這些我們習(xí)以為常的“準(zhǔn)時(shí)”與“精確”,背后都依賴于電子設(shè)備的“時(shí)序基準(zhǔn)源”——實(shí)時(shí)時(shí)鐘(Real-Time Clock, RTC)。
    的頭像 發(fā)表于 05-28 17:21 ?244次閱讀
    時(shí)間的力量:RTC如何賦能萬(wàn)物精準(zhǔn)運(yùn)行?

    Altera Agilex 5 D系列FPGA的性能和能效

    隨著邊緣計(jì)算領(lǐng)域的迅速發(fā)展,許多應(yīng)用日益依賴于內(nèi)存技術(shù)來(lái)實(shí)現(xiàn)更高的性能或每瓦性能。Altera 的 Agilex 5 D 系列 FPGA 可提供一系列經(jīng)過(guò)精心設(shè)計(jì)的內(nèi)存選擇,助力用戶輕松采用先進(jìn)的
    的頭像 發(fā)表于 03-27 13:36 ?617次閱讀

    穩(wěn)定性建設(shè)之依賴設(shè)計(jì)

    作者:京東物流 馮志文 背景 隨著分布式微服務(wù)的發(fā)展,一個(gè)普通的應(yīng)用可能會(huì)依賴于許多其他服務(wù),這給系統(tǒng)的限流降級(jí)、優(yōu)化改造等操作帶來(lái)了困難。在沒(méi)有明確強(qiáng)弱依賴關(guān)系的情況下,我們很難有效地進(jìn)行這些操作
    的頭像 發(fā)表于 02-21 09:49 ?343次閱讀
    穩(wěn)定性建設(shè)之<b class='flag-5'>依賴</b>設(shè)計(jì)

    可控硅的控制奧秘:依賴直流還是交流?

    可控硅是一種重要的半導(dǎo)體器件,通過(guò)控制極的觸發(fā)信號(hào)實(shí)現(xiàn)對(duì)電流的控制。它可以在直流和交流電路中應(yīng)用,分別用于開(kāi)關(guān)、調(diào)節(jié)、調(diào)光等功能。直流控制和交流控制的特點(diǎn)和應(yīng)用場(chǎng)景有所不同,但都依賴于精確的觸發(fā)電路設(shè)計(jì)。通過(guò)合理設(shè)計(jì)控制電路和保護(hù)電路,可以充分發(fā)揮可控硅的性能,實(shí)現(xiàn)對(duì)電路的精確控制。
    的頭像 發(fā)表于 01-10 15:44 ?1927次閱讀
    可控硅的控制奧秘:<b class='flag-5'>依賴</b>直流還是交流?

    RAID 5 硬件與軟件 RAID 的區(qū)別

    RAID 5硬件RAID與軟件RAID之間存在顯著的差異,這些差異主要體現(xiàn)在實(shí)現(xiàn)方式、性能、數(shù)據(jù)安全性、靈活性以及成本等方面。 一、實(shí)現(xiàn)方式 硬件RAID : 依賴于專(zhuān)用的硬件RAID控制器來(lái)管理
    的頭像 發(fā)表于 12-27 18:05 ?1212次閱讀

    虛擬設(shè)計(jì)與優(yōu)化電力電子系統(tǒng)依賴于半導(dǎo)體芯片模型

    方法,該方法結(jié)合了靜態(tài)和動(dòng)態(tài)表征技術(shù)以及參數(shù)擬合,從而能夠創(chuàng)建高度精確的模型。電力電子技術(shù)幾乎存在于現(xiàn)代生活的各個(gè)方面,從消費(fèi)電子到可再生能源集成和交通。這些系統(tǒng)
    的頭像 發(fā)表于 12-10 11:57 ?615次閱讀
    虛擬設(shè)計(jì)與優(yōu)化電力電子系統(tǒng)<b class='flag-5'>依賴于</b>半導(dǎo)體芯片模型

    關(guān)于LRU(Least Recently Used)的邏輯實(shí)現(xiàn)

    湊巧看到一個(gè)有關(guān)LRU(Least Recently Used)的邏輯實(shí)現(xiàn),其采用矩陣方式進(jìn)行實(shí)現(xiàn),看起來(lái)頗有意思,但文章中只寫(xiě)方法不說(shuō)原理,遂來(lái)研究下。LRU(Least Recently
    的頭像 發(fā)表于 11-12 11:47 ?929次閱讀
    關(guān)于<b class='flag-5'>LRU</b>(Least Recently Used)的邏輯實(shí)現(xiàn)

    無(wú)人機(jī)慣導(dǎo)IMU和航姿參考系統(tǒng)

    無(wú)人機(jī)飛行姿態(tài)的控制是其飛行性能和任務(wù)執(zhí)行能力的核心,依賴于精確的傳感器數(shù)據(jù)、高效的控制算法和可靠的執(zhí)行機(jī)構(gòu)
    的頭像 發(fā)表于 11-06 17:45 ?1233次閱讀
    無(wú)人機(jī)慣導(dǎo)IMU和航姿參考系統(tǒng)

    行業(yè)動(dòng)態(tài) | 英偉達(dá)2024年將出貨10億個(gè)RISC-V 內(nèi)核

    據(jù)Tomshardware援引@NickBrownHPC的爆料稱,盡管英偉達(dá)(NVIDIA)的GPU依賴于其專(zhuān)有的CUDA內(nèi)核,這些內(nèi)核具有其指令集架構(gòu)并支持各種數(shù)據(jù)格式。但是在本月的RISC-V
    的頭像 發(fā)表于 10-29 08:07 ?705次閱讀
    行業(yè)動(dòng)態(tài) | 英偉達(dá)2024年將出貨10億個(gè)RISC-V 內(nèi)核

    鴻蒙Flutter實(shí)戰(zhàn):09-現(xiàn)有Flutter項(xiàng)目支持鴻蒙

    │ ├── printer ├── pubspec.lock ├── pubspec.yaml └── yarn.lock plugins 是依賴于原生平臺(tái)的插件, components 是平臺(tái)無(wú)關(guān)
    發(fā)表于 10-23 16:36

    隧道定位導(dǎo)航技術(shù)主要依賴于哪些原理或技術(shù)

    在交通運(yùn)輸領(lǐng)域,隧道作為連接不同區(qū)域的重要通道,其內(nèi)部的安全與效率問(wèn)題一直備受關(guān)注。尤其是在隧道內(nèi),由于山體或建筑物的遮擋,衛(wèi)星信號(hào)往往無(wú)法直接到達(dá),傳統(tǒng)的GPS等衛(wèi)星導(dǎo)航定位技術(shù)在隧道內(nèi)難以正常工作。因此,隧道定位導(dǎo)航技術(shù)的發(fā)展顯得尤為重要。那么,隧道定位導(dǎo)航技術(shù)主要依賴于哪些原理或技術(shù)呢?
    的頭像 發(fā)表于 08-14 11:04 ?915次閱讀

    聚徽-嵌入式工控機(jī)是如何散熱的

    嵌入式工控機(jī)散熱主要依賴于以下幾種方式:
    的頭像 發(fā)表于 08-14 09:21 ?629次閱讀

    為什么需要在JTAG LOCK期間實(shí)現(xiàn)RAMIN?

    大家好,我想問(wèn)一下,為什么我們需要在 JTAG LOCK 期間實(shí)現(xiàn) RAMIN(內(nèi)存初始化)?
    發(fā)表于 07-24 06:35

    IGBT功率器件的散熱方式

    功率器件的正常運(yùn)行在很大程度上依賴于散熱。常用的散熱方式有自冷、風(fēng)冷、水冷和沸騰冷卻四種。
    的頭像 發(fā)表于 07-15 16:31 ?2133次閱讀
    IGBT功率器件的散熱方式