色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

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

FP8模型訓(xùn)練中Debug優(yōu)化思路

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 2024-09-06 14:36 ? 次閱讀

目前,市場(chǎng)上許多公司都積極開(kāi)展基于 FP8 的大模型訓(xùn)練,以提高計(jì)算效率和性能。在此,我們整理并總結(jié)了客戶(hù)及 NVIDIA 技術(shù)團(tuán)隊(duì)在 FP8 模型訓(xùn)練過(guò)程中的 debug 思路和方法,供大家參考。

在討論之前,建議大家使用我們推薦的 FP8 訓(xùn)練的 Recipe,即使用 Delayed scaling,在 History length 為 1024 的窗口中選取最大的 amax 數(shù)值作為計(jì)算 scaling factor 的方法。當(dāng)然,我們也在不斷優(yōu)化這個(gè) Recipe,未來(lái)隨著更多 FP8 的實(shí)踐案例,將繼續(xù)為大家總結(jié)和分享,期待共同探索和優(yōu)化 debug 的思路和方案。

在收集和整理了大量 FP8 訓(xùn)練的案例后,我們發(fā)現(xiàn),F(xiàn)P8 訓(xùn)練中遇到的問(wèn)題一般可以分成以下三類(lèi)。

第一類(lèi)問(wèn)題:Spike Issue

Spike Issue 其實(shí)并不是 FP8 訓(xùn)練所特有的,在 BF16 中也可能會(huì)遇到此類(lèi)問(wèn)題,并且實(shí)際上根據(jù) NVIDIA 技術(shù)團(tuán)隊(duì)內(nèi)部訓(xùn)練的一些曲線(xiàn),可以看到 FP8 的 Spike Issue 要比 BF16 還要小一些。所以,如果遇到了 Spike Issue,很多情況下可以暫時(shí)不用特別關(guān)注 FP8。另外,這里推薦兩篇關(guān)于 Spike 的研究,供大家參考。

關(guān)于 Adam Optimizer 對(duì) Spike 的影響。

關(guān)于使用 SWA 增強(qiáng)訓(xùn)練的穩(wěn)定性,減少 Spike 出現(xiàn)的情況。

整體上,如果我們遇到的 Spike 和曾經(jīng)在 BF16 上遇到的差不多,這種情況很可能不是 FP8 的問(wèn)題。當(dāng)然,也有例外的情況,比如我們遇到的 Spike 需要很多迭代步才能夠恢復(fù)正常,那這種情況下可以說(shuō)明這個(gè) loss 和 BF16 有本質(zhì)上的差異, 可以考慮是第二類(lèi)問(wèn)題。

第二類(lèi)問(wèn)題:

FP8 loss 和 BF16 不匹配或者發(fā)散

在 Validation loss 曲線(xiàn)上,不論是預(yù)訓(xùn)練還是 SFT,如果有 BF16 作為 Baseline,并且可以看到 FP8 和 BF16 有差距,這種情況下應(yīng)該如何處理?

一般這類(lèi)問(wèn)題可以分成兩種情況,包括:

情況 1:在訓(xùn)練的初始階段,不論是 Train from scratch 還是 Continue train,如果剛切換到 FP8 進(jìn)行訓(xùn)練,一開(kāi)始就出現(xiàn)了 loss 比較大或者直接跑飛,這種情況下大概率是軟件問(wèn)題造成的,因此建議大家使用 NVIDIA 最新的 Transformer EngineMegatron Core 的軟件棧,這樣很多軟件的問(wèn)題可以及時(shí)被修復(fù),從而讓大家少跑一些彎路。同時(shí)還有另外一種情況,在軟件不斷的更新過(guò)程中,為了性能的優(yōu)化會(huì)增加很多新的特性。如果一些特性是剛剛加入的,可能在 FP8 上暫時(shí)還沒(méi)有遇到特殊情況,因此建議,大家如果使用了一些很新的特性,屆時(shí)可以先嘗試關(guān)閉掉這些新特性,檢查是否是由于這些新特性的實(shí)現(xiàn)不夠完善造成 loss 的問(wèn)題。

情況 2:我們已經(jīng)訓(xùn)練了一段時(shí)間,比如已經(jīng)訓(xùn)練了幾百 Billion 的 Tokens,loss 出現(xiàn)了差距,這種情況一般就不是軟件問(wèn)題了。問(wèn)題可能是給大家推薦的這個(gè) Recipe 并不適用于某些數(shù)據(jù)集或某些模型結(jié)構(gòu)。這種情況下,可以通過(guò)下面的案例去進(jìn)行拆解

第三類(lèi)問(wèn)題:FP8 loss 非常吻合,

但是 Downstream tasks 會(huì)有一些差異

訓(xùn)練中,我們的 Validation loss 曲線(xiàn)吻合的非常好,比如 loss 差距的量級(jí)大概是在十的負(fù)三次方,但是在一些下游任務(wù)上打分的方面可能會(huì)出現(xiàn)問(wèn)題,那應(yīng)該如何處理?這樣的問(wèn)題一般分為兩種情況,包括:

情況 1:進(jìn)行下游任務(wù)打分的時(shí)候,會(huì)進(jìn)行多任務(wù)打分。如果所有的任務(wù)和 BF16 baseline 對(duì)比,或者和當(dāng)時(shí)上一代的模型對(duì)比,打分結(jié)果差異很大,這種情況大概率是評(píng)估過(guò)程中出現(xiàn)了問(wèn)題。比如,Checkpoint 導(dǎo)出來(lái)的格式不對(duì),或者 Scale 沒(méi)有取對(duì)等評(píng)估流程的問(wèn)題。因此我們還需要進(jìn)行排除,確認(rèn)是否是導(dǎo)出模型和評(píng)估流程出現(xiàn)了問(wèn)題。

情況 2:另一種情況,如前文提到的“在訓(xùn)練了幾百 Billion 的 Token 之后,loss 出現(xiàn)了差距”,和這種情況很相似,此時(shí)大部分任務(wù)都沒(méi)問(wèn)題,只有個(gè)別的一兩個(gè)任務(wù)發(fā)現(xiàn)跟 BF16 的 Baseline 有明顯差距,如 3% 或者 5% 的掉點(diǎn)。這種情況下,建議改變 FP8 訓(xùn)練的 Recipe,默認(rèn)的 Recipe 是 Delayed scaling,即選用先前迭代步存下來(lái)的 scale 值,我們可以替換成 Current scaling,即選用當(dāng)前迭代步的 scale 值,或者把部分的矩陣做一些回退到 BF16 的操作,具體方法下文會(huì)進(jìn)行介紹。

以下是一個(gè)案例,通過(guò)這個(gè)案例,可以初步了解哪些方法在現(xiàn)階段可以進(jìn)行嘗試。

wKgZombaox2AA-QIAACNQpC9OX8898.jpg

這是一個(gè)類(lèi)似于 Llama 2 的模型,雖然模型規(guī)模較小,但已經(jīng)訓(xùn)練了 1.1T 個(gè) Tokens,使用了如下推薦的配置,包括:

Pytorch 23.10 版本

TE Commit 為 d76118d

FP8 format:hybird

History Length:1024

Algo:Max

FP8 Wgrad Override:True

我們發(fā)現(xiàn),比較接近 loss 末尾的時(shí)候,差異就會(huì)隨之出現(xiàn),并且顯然已經(jīng)不是十的負(fù)三次方的量級(jí),這種情況下,可以考慮以下的步驟進(jìn)行問(wèn)題的排查。

wKgaombaZZWADmmKAAB_pnXO4Qo355.jpg

第一步:Sequence Parallel off

在軟件前期的時(shí)候,首先盡可能?chē)L試關(guān)閉一些根據(jù)經(jīng)驗(yàn)判斷可能有問(wèn)題的特性。比如在引入 FP8 初期,軟件上的 Sequence Paralleism(SP)經(jīng)常會(huì)引起一些問(wèn)題,因此可以先嘗試進(jìn)行關(guān)閉,如果發(fā)現(xiàn)關(guān)閉后并沒(méi)有問(wèn)題,可以初步判斷 loss 不是由軟件引起的,從而大概率可以推斷是 Recipe 不夠完善造成的。

第二步:我們可以做一個(gè)恢復(fù)性實(shí)驗(yàn)

嘗試看一下當(dāng)前訓(xùn)練出現(xiàn)問(wèn)題的 FP8 的 Checkpoint,比如最后一個(gè)點(diǎn),把這個(gè) Checkpoint 切換到 BF16 訓(xùn)練,查看是否可以恢復(fù)到 BF16 的 Baseline。我們目前遇到的大多數(shù)情況都是可以恢復(fù)的。因此在這個(gè)基礎(chǔ)的情況下,可以繼續(xù)嘗試下一步 debug 的方法。

第三步:三類(lèi)矩陣的問(wèn)題排查

大多數(shù)情況下,整個(gè)模型跑在 FP8 上并不多見(jiàn)。對(duì)于 Transformer layer 的每個(gè) Gemm 來(lái)說(shuō),整個(gè)訓(xùn)練過(guò)程中,有三類(lèi)矩陣跑在 FP8 上,包括它的前向 Fprop,以及反向 Wgrad 和 Dgrad,因此現(xiàn)在需要判斷三類(lèi)矩陣的哪個(gè)矩陣出了問(wèn)題,當(dāng)然,更細(xì)致一些應(yīng)該判斷具體是哪一個(gè) Transformer layer 的矩陣出了問(wèn)題。不過(guò),這個(gè)特性還在開(kāi)發(fā)過(guò)程中,目前還是一個(gè)比較初步的判斷,需要檢查是前向的矩陣還是反向的兩個(gè)矩陣其中之一出現(xiàn)了差錯(cuò)。因此這一步中,可以首先把這三類(lèi)矩陣全部轉(zhuǎn)成 BF16 訓(xùn)練。不過(guò),我們做的是一個(gè) Fake quantization,通俗的解釋就是使用 BF16 進(jìn)行訓(xùn)練,但是在做 BF16 計(jì)算之前,會(huì)先把它的輸入 Cast 成 FP8,然后再 Cast back 回到 BF16。這個(gè)時(shí)候,其實(shí)數(shù)據(jù)表示它已經(jīng)是 FP8 表示范圍內(nèi)的值了, 自然這個(gè) scaling 使用的就是 Current scaling,或者說(shuō)沒(méi)有 Scaling。這種情況下,會(huì)發(fā)現(xiàn)把三類(lèi)矩陣全部都切回 Fake quantization 進(jìn)行訓(xùn)練的時(shí)候,此時(shí)的 loss 曲線(xiàn)是可以貼近 BF16 Baseline 的。因此,下面需要一個(gè)矩陣一個(gè)矩陣的進(jìn)行排除。

wKgZombaozmAF7h-AAFeySPfF5M564.jpg

三類(lèi)矩陣包括前向的 Fprop,以及反向的 Wgrad 和 Dgrad。因此我們可以遵循一個(gè)相對(duì)簡(jiǎn)單的思路——逐一嘗試,就是每次訓(xùn)練把其中一個(gè)矩陣設(shè)置為 BF16 計(jì)算, 經(jīng)我們嘗試后,可以看到:

在 Fprop 矩陣上面做 BF16 計(jì)算,會(huì)發(fā)現(xiàn)對(duì) loss 的影響并不是很大。

在 Wgrad 矩陣上面做 BF16 計(jì)算,影響也非常小。

在 Dgrad 矩陣上面做 BF16 計(jì)算,即只有 Dgrad 計(jì)算執(zhí)行在 BF16,而 Fprop 和 Wgrad 全部執(zhí)行在 FP8,此時(shí)會(huì)發(fā)現(xiàn) loss 會(huì)回到 BF16 的 Baseline。

現(xiàn)在我們已經(jīng)定位到了有問(wèn)題的矩陣是 Dgrad,是否還有方法再做進(jìn)一步的挽救從而避免性能損失太多?這種情況下,可以去進(jìn)行以下嘗試。

wKgZombao0iAU4iCAADVLDYd6mA643.jpg

在 Transformer Engine (TE) 的后續(xù)版本中,計(jì)劃支持用戶(hù)使用 Current scaling,即還是使用 FP8 去做 Gemm 的運(yùn)算。但是我們不用前面給大家推薦的這個(gè) Delayed scaling recipe,而是使用當(dāng)前輸入的 scale 值,雖然會(huì)損失一點(diǎn)性能,但是相比于把整個(gè) Gemm 回退到 BF16 做計(jì)算,它的性能損失會(huì)小很多。

當(dāng)對(duì) Dgrad 使用了 Current scaling 之后,會(huì)發(fā)現(xiàn) loss 曲線(xiàn)已經(jīng)和 BF16 的 Baseline 吻合了。

以上就是一個(gè)相對(duì)完整的 debug 的思路,供大家參考和討論。

關(guān)于作者

高慧怡

NVIDIA 深度學(xué)習(xí)解決方案架構(gòu)師,2020 年加入 NVIDIA 解決方案架構(gòu)團(tuán)隊(duì),從事深度學(xué)習(xí)應(yīng)用在異構(gòu)系統(tǒng)的加速工作,目前主要支持國(guó)內(nèi) CSP 客戶(hù)在大語(yǔ)言模型的訓(xùn)練加速工作。

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

    關(guān)注

    14

    文章

    5176

    瀏覽量

    105269
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3448

    瀏覽量

    49706
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    94

    瀏覽量

    20267

原文標(biāo)題:探索 FP8 訓(xùn)練中 Debug 思路與技巧

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    深層神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練:過(guò)擬合優(yōu)化

    為了訓(xùn)練出高效可用的深層神經(jīng)網(wǎng)絡(luò)模型,在訓(xùn)練時(shí)必須要避免過(guò)擬合的現(xiàn)象。過(guò)擬合現(xiàn)象的優(yōu)化方法通常有三種。
    的頭像 發(fā)表于 12-02 14:17 ?2966次閱讀
    深層神經(jīng)網(wǎng)絡(luò)<b class='flag-5'>模型</b>的<b class='flag-5'>訓(xùn)練</b>:過(guò)擬合<b class='flag-5'>優(yōu)化</b>

    【「基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀

    今天學(xué)習(xí)<基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化>這本書(shū)。大模型微調(diào)是深度學(xué)習(xí)領(lǐng)域中的一項(xiàng)關(guān)鍵技術(shù),它指的是在已經(jīng)預(yù)訓(xùn)練好的大型深度學(xué)習(xí)模型
    發(fā)表于 01-14 16:51

    為什么無(wú)法使用Dla_compiler在OpenVINO?編譯用于FPGA的IR模型?

    導(dǎo)入了預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。 使用模型優(yōu)化器轉(zhuǎn)換為 IR 模型: mo --saved_model_dir \"{path_savedMod
    發(fā)表于 03-05 06:00

    Pytorch模型訓(xùn)練實(shí)用PDF教程【中文】

    本教程以實(shí)際應(yīng)用、工程開(kāi)發(fā)為目的,著重介紹模型訓(xùn)練過(guò)程中遇到的實(shí)際問(wèn)題和方法。在機(jī)器學(xué)習(xí)模型開(kāi)發(fā),主要涉及三大部分,分別是數(shù)據(jù)、模型和損失
    發(fā)表于 12-21 09:18

    分享一種用于神經(jīng)網(wǎng)絡(luò)處理的新8位浮點(diǎn)交換格式

    ,以便更好地匹配值(權(quán)重、激活,漸變等)被處理,而不是僅僅依賴(lài)于 FP8 格式。此外,模型可以在與 FP8 相同的格式下進(jìn)行訓(xùn)練和部署,而定點(diǎn)格式,特別是 int
    發(fā)表于 09-15 15:15

    小米在預(yù)訓(xùn)練模型的探索與優(yōu)化

    大家?guī)?lái)小米在預(yù)訓(xùn)練模型的探索與優(yōu)化。 01 預(yù)訓(xùn)練簡(jiǎn)介 預(yù)訓(xùn)練與詞向量的方法一脈相承。詞向量是從任務(wù)無(wú)關(guān)和大量的無(wú)監(jiān)督語(yǔ)料中學(xué)習(xí)到詞的分布
    的頭像 發(fā)表于 12-31 10:17 ?2784次閱讀
    小米在預(yù)<b class='flag-5'>訓(xùn)練</b><b class='flag-5'>模型</b>的探索與<b class='flag-5'>優(yōu)化</b>

    介紹幾篇EMNLP&apos;22的語(yǔ)言模型訓(xùn)練方法優(yōu)化工作

    來(lái)自:圓圓的算法筆記 今天給大家介紹3篇EMNLP 2022語(yǔ)言模型訓(xùn)練方法優(yōu)化的工作,這3篇工作分別是: 針對(duì)檢索優(yōu)化語(yǔ)言
    的頭像 發(fā)表于 12-22 16:14 ?1125次閱讀

    【AI簡(jiǎn)報(bào)20231103期】ChatGPT參數(shù)揭秘,中文最強(qiáng)開(kāi)源大模型來(lái)了!

    訓(xùn)練擴(kuò)展模型大小,節(jié)約訓(xùn)練成本的最關(guān)鍵技術(shù)之一。相比于當(dāng)前的 16 位和 32 位浮點(diǎn)混合精度訓(xùn)練,使用
    的頭像 發(fā)表于 11-03 19:15 ?1670次閱讀
    【AI簡(jiǎn)報(bào)20231103期】ChatGPT參數(shù)揭秘,中文最強(qiáng)開(kāi)源大<b class='flag-5'>模型</b>來(lái)了!

    NVIDIA GPU架構(gòu)下的FP8訓(xùn)練與推理

    FP8 訓(xùn)練利用 E5M2/E4M3 格式,具備與 FP16 相當(dāng)?shù)膭?dòng)態(tài)范圍,適用于反向傳播與前向傳播。
    的頭像 發(fā)表于 04-25 10:01 ?1487次閱讀
    NVIDIA GPU架構(gòu)下的<b class='flag-5'>FP8</b><b class='flag-5'>訓(xùn)練</b>與推理

    TensorRT-LLM低精度推理優(yōu)化

    Optimizer(簡(jiǎn)稱(chēng) ModelOpt)及其快速實(shí)現(xiàn)量化功能的方法。第三部分為 Debug。隨后講解 FP8 的 Deep-Dive,并進(jìn)行總結(jié)。
    的頭像 發(fā)表于 11-19 14:29 ?889次閱讀
    TensorRT-LLM低精度推理<b class='flag-5'>優(yōu)化</b>

    FP8數(shù)據(jù)格式在大型模型訓(xùn)練的應(yīng)用

    本文主要介紹了 FP8 數(shù)據(jù)格式在大型模型訓(xùn)練的應(yīng)用、挑戰(zhàn)及最佳實(shí)踐,展示了 FP8 在提升訓(xùn)練
    的頭像 發(fā)表于 11-19 14:54 ?1231次閱讀
    <b class='flag-5'>FP8</b>數(shù)據(jù)格式在大型<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b><b class='flag-5'>中</b>的應(yīng)用

    如何使用FP8新技術(shù)加速大模型訓(xùn)練

    利用 FP8 技術(shù)加速 LLM 推理和訓(xùn)練越來(lái)越受到關(guān)注,本文主要和大家介紹如何使用 FP8 這項(xiàng)新技術(shù)加速大模型訓(xùn)練。 使用
    的頭像 發(fā)表于 12-09 11:30 ?726次閱讀

    采用FP8混合精度,DeepSeek V3訓(xùn)練成本僅557.6萬(wàn)美元!

    一, 前言? ? 在AI領(lǐng)域,訓(xùn)練一個(gè)大型語(yǔ)言模型(LLM)是一個(gè)耗時(shí)且復(fù)雜的過(guò)程。根據(jù)之前在《從零開(kāi)始訓(xùn)練一個(gè)大語(yǔ)言模型需要投資多少錢(qián)?》
    的頭像 發(fā)表于 01-13 11:12 ?978次閱讀

    FP8在大模型訓(xùn)練的應(yīng)用

    越來(lái)越多的技術(shù)團(tuán)隊(duì)開(kāi)始使用 FP8 進(jìn)行大模型訓(xùn)練,這主要因?yàn)?FP8 有很多技術(shù)優(yōu)勢(shì)。比如在新一代的 GPU 上,FP8 相對(duì)于 BF16
    的頭像 發(fā)表于 01-23 09:39 ?823次閱讀
    <b class='flag-5'>FP8</b>在大<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b><b class='flag-5'>中</b>的應(yīng)用

    摩爾線(xiàn)程GPU原生FP8計(jì)算助力AI訓(xùn)練

    并行訓(xùn)練和推理,顯著提升了訓(xùn)練效率與穩(wěn)定性。摩爾線(xiàn)程是國(guó)內(nèi)率先原生支持FP8計(jì)算精度的國(guó)產(chǎn)GPU企業(yè),此次開(kāi)源不僅為AI訓(xùn)練和推理提供了全新的國(guó)產(chǎn)化解決方案,更對(duì)推動(dòng)國(guó)產(chǎn)GPU在AI大
    的頭像 發(fā)表于 03-17 17:05 ?329次閱讀
    摩爾線(xiàn)程GPU原生<b class='flag-5'>FP8</b>計(jì)算助力AI<b class='flag-5'>訓(xùn)練</b>
    主站蜘蛛池模板: 5g天天奭视频| 亚洲AV无码国产精品色午夜情 | 久久re这里视频精品8 | 成人性生交片无码免费看 | 国产又色又爽又刺激在线播放 | 黑丝美女被人操 | 久久一er精这里有精品 | 久见久热 这里只有精品 | 亚洲精品久久久久久偷窥 | 国产亚洲精品精品国产亚洲综合 | 87.6在线收听| 美女漏bb| 国产精品久久久久久久人人看 | DASD-700美谷朱里 | 国产国拍亚洲精品av麻豆 | 十九岁在线观看免费完整版电影 | 亚洲国产在线观看免费视频 | 国产成人一区二区三区在线观看 | 亚洲午夜福利未满十八勿进 | 暖暖 视频 在线 观看 高清 | 色琪琪无码成人AV视频 | 黑丝制服影院 | 伊人久久国产精品 | 快穿之诱受双性被灌满h | 国产手机精品一区二区 | 日韩性xxx | 久久久精品3d动漫一区二区三区 | 小黄文纯肉短篇 | 午夜一级视频 | 男人插女人动态 | 日本无码专区亚洲麻豆 | 无码不卡中文字幕在线观看 | 久久囯产精品777蜜桃传媒 | 国产美女久久久久久久久久久 | 伦理片秋霞免费影院 | 老司机深夜福利ae 入口网站 | 午夜性伦鲁啊鲁免费视频 | 色婷婷综合激情中文在线 | 2023极品少妇XXXO露脸 | 成人国内精品久久久久影院 | 被窝伦理午夜电影网 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品