2025AICon全球人工智能開發(fā)與應(yīng)用大會(huì)-上海站:昇騰推理技術(shù)的優(yōu)化實(shí)踐_第1頁
2025AICon全球人工智能開發(fā)與應(yīng)用大會(huì)-上海站:昇騰推理技術(shù)的優(yōu)化實(shí)踐_第2頁
2025AICon全球人工智能開發(fā)與應(yīng)用大會(huì)-上海站:昇騰推理技術(shù)的優(yōu)化實(shí)踐_第3頁
2025AICon全球人工智能開發(fā)與應(yīng)用大會(huì)-上海站:昇騰推理技術(shù)的優(yōu)化實(shí)踐_第4頁
2025AICon全球人工智能開發(fā)與應(yīng)用大會(huì)-上海站:昇騰推理技術(shù)的優(yōu)化實(shí)踐_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

昇騰推理技術(shù)的優(yōu)化實(shí)踐演講人:張君02

昇騰硬件親和的FA融合算子性能優(yōu)化實(shí)踐03

基于Ascend

C的MC2通算融合算子性能優(yōu)化01大模型推理的現(xiàn)狀及挑戰(zhàn)目錄04

總結(jié)與展望大模型推理的現(xiàn)狀以及挑戰(zhàn)自回歸算力利用率低,低時(shí)延高吞吐難以兼顧Prefill和Decode兩階段推理差異大,難以充分利用算力資源?基于request的調(diào)度導(dǎo)致大量算力空閑:同batch序列長度差異大?不同階段的請(qǐng)求難以batch:prefill/decode輸入、

kvcache維度差別大Decode階段每token串行解碼算力利用率低?串行解碼以GEMV為主,計(jì)算訪存比低?KVCache訪存量隨序列長度增長,Attention占比增加模型規(guī)模大,內(nèi)存容量和訪存是瓶頸內(nèi)存容量不足導(dǎo)致單卡無法推理?模型參數(shù):百億/千億模型參數(shù)超過單卡內(nèi)存容量?KVCache:隨著batchsize和序列長度增長,占用更多內(nèi)存;訪存帶寬制約50ms/token推理時(shí)延達(dá)成?多路并發(fā)緩和帶寬壓力,提升吞吐但增加時(shí)延?隨著序列增長,

KVCache訪存成為瓶頸,推理時(shí)延成倍增長 現(xiàn)狀1:模型規(guī)模增大及自回歸解碼帶來訪存及算力利用率壓力迭代多步

×

N不同用戶請(qǐng)求輸出長度不同迭代步數(shù)多的請(qǐng)求時(shí)延長

×

N02 batch

×seq小

<EOS>時(shí)延決定用戶體驗(yàn),吞吐衡量系統(tǒng)成本不同請(qǐng)求輸入長度不同batch

×seq大

緩存

×

N

<EOS>每token串行Decode階段

<EOS>…

×

N…

×

NPrefill階段…??…

×

N…

×

N…

×

N…

×

N??…V

∈Rseq×TDim原理:向量

×矩陣,瓶頸:HBM或者顯存開銷KVCache內(nèi)存占用=

2

*KVB

*seq

*

Layer

*

TDim

*

示例:以Llama270B為例,

1M序列長度推理時(shí)延52秒,

HBM利用率50%,需要消耗18NPU卡內(nèi)存墻:

KVCache內(nèi)存占用隨序列長度、

Batchsize增加,

KVcache顯存開銷成倍上升,采用HBM存儲(chǔ)KVCache成本依然很高。V

∈Rseq×TDim原理:矩陣

×矩陣,瓶頸:算力推理計(jì)算量

=Layer

*

(4

*seq2

*

TDim+

24*

Seq

*

TDim2)

Attention計(jì)算量與序列長度成平方關(guān)系

,線性層計(jì)算量與序列

長度成正比示例:以Llama270B為例,

1M序列長度推理時(shí)延52秒,算力利用率50%,需要消耗216NPU卡(備注:

Layer網(wǎng)絡(luò)層數(shù),TDim特征維度,seq序列長度,

KVB為精度)WQWKX

∈Rseq2×TDimWVQ

R

seq2×TDimS

∈K

CacheK

∈Rseq×TDimKT∈RTDim×seqV

CacheQ

×

KT

softmax(S)Rseq2×seqAttention計(jì)算結(jié)果MatMulO

=

P

×

V

O

∈Rseq×TDim現(xiàn)狀2:

KV

Cache導(dǎo)致"內(nèi)存墻”瓶頸進(jìn)一步加劇采用KVCache,推理內(nèi)存開銷數(shù)線性增長,形成“

內(nèi)存墻”和”帶寬墻”MatMulMatMulKT

RTDim×seq

O

=

P

×

VO

∈Rseq×TDim不采用KVCache,全量計(jì)算硬推,

計(jì)算量隨序列長度增加指數(shù)級(jí)增漲WQWKX∈Rseq×TDimWVQ

∈Rseq×TDimK

∈Rseq×TDimMatMulsoftmax(S)s

=

Q

×

KT

S

Rseq×seqAttention計(jì)算結(jié)果s

=02算法層優(yōu)化

模型分片:分片策略優(yōu)化,增量推理

投機(jī)推理:自投機(jī)增量推理

模型量化:8Bit量化,

4Bit量化

Attention計(jì)算優(yōu)化

…01算子層優(yōu)化

算子融合:QKV融合大算子,提升增量響應(yīng)。

高性能加速庫:

cuBLAS,F(xiàn)asterTransformer

,ATB等

…03框架層優(yōu)化

Continous

Batching

PageAttention

PD分離部署

大模型推理常用加速技術(shù)發(fā)力點(diǎn)昇騰硬件親和的FA融合算子性能優(yōu)化實(shí)踐u

受限于昇騰Atlas300I上Vec算力相較于Cube低很

多,

FA(FlashAttention)算子的性能分析結(jié)果呈現(xiàn)很明顯的VecBound(Vector是性能瓶頸,約占總執(zhí)行時(shí)間的90%)u

但Mul和Add操作是非常親和矩陣乘計(jì)算的,所以現(xiàn)考慮能否把這兩個(gè)計(jì)算步驟改到Cube進(jìn)行

計(jì)算,提升性能u

onlineSoftmax算法一般

涉及exp、sub、

Mul、Add等步驟,由于它們都是向量操作,所以一般放在Vec進(jìn)行更新計(jì)算,這部分約占算子執(zhí)行總時(shí)間的15%Qu

FA/

PA算法的重點(diǎn)就是使用onlineSoftmax(分塊、動(dòng)態(tài))的方法小步快跑,逐步對(duì)kvcache進(jìn)行

計(jì)算,提升計(jì)算效率,減少內(nèi)存占用 挑戰(zhàn)1:vector能力不足,如何用cube補(bǔ)齊u

Cube計(jì)算單元和Vector計(jì)算單元同核部署,Cube計(jì)算單元和Vector計(jì)算單元共享同一個(gè)Scalar單元,統(tǒng)一加載所有的代碼段。u

列出了計(jì)算架構(gòu)中的存儲(chǔ)單元和計(jì)算單元,箭頭表示數(shù)據(jù)處理流向,MTE1/MTE2/MTE3代表搬運(yùn)單元。

AICore的耦合架構(gòu)Scalar負(fù)責(zé)各類型的標(biāo)量數(shù)據(jù)運(yùn)算和程序的流程控制。功能上可以看做一個(gè)小CPU,完成整個(gè)程序的循環(huán)控制、分支判

斷。Vector負(fù)責(zé)執(zhí)行向量運(yùn)算。向量計(jì)算單元可以快速完成兩個(gè)

FP16類型的向量相加或者相乘,

向量指令支持多次迭代執(zhí)

行。

Scalar

,Vector計(jì)算單元VectorScalaru

Cube計(jì)算單元負(fù)責(zé)執(zhí)行矩陣運(yùn)算

,一次執(zhí)行即可完成A矩陣(

M*

K

)與B矩陣

K

*

N)的矩陣乘。u

如左圖所示紅色虛線框劃出了Cube計(jì)算單元及其訪問的存儲(chǔ)單元,其中

L0A存

儲(chǔ)左矩陣,

L0B存儲(chǔ)右矩陣,

L0C存儲(chǔ)矩陣乘的結(jié)果和中間結(jié)果。

Cube計(jì)算單元 構(gòu)造對(duì)角矩陣,使用Cube代替VectorFlashAttention算法中onlineSoftmax部分的更新公式為:300I總耗時(shí)的增加遠(yuǎn)大于Vec耗時(shí)的增加?另外分析總耗時(shí)發(fā)現(xiàn),它增加了約290us:290(總耗時(shí))=60(vector)+100(cube)+70(mte1)+70(mte3)這個(gè)數(shù)據(jù)也非常不合理,因?yàn)閂ec耗時(shí)只增加了60us左右。?無論是Cube,

MTE1,

MTE3都沒有被Vec很好地掩蓋,所以他們耗時(shí)的增加也導(dǎo)致了總耗時(shí)的增加。?除優(yōu)化對(duì)角陣構(gòu)造外,另一個(gè)需要關(guān)注的點(diǎn)就是新方案下的流水調(diào)整和掩蓋,目標(biāo)是無論cube、

MTE1或MTE3

,它們的流水

能最大程度地被Vec掩蓋。Vec耗時(shí)不降反增?原Vec中onlineSoftmax的部分耗時(shí)確實(shí)已經(jīng)消減(300us左右),但構(gòu)造對(duì)角矩陣引入了額外的成本

(370us左右),此消彼長,最終導(dǎo)致Vec耗時(shí)增加了

60us左右。?

因此首先要做的,就是優(yōu)化對(duì)角矩陣的構(gòu)造邏輯,使

Vec耗時(shí)有明顯下降。這是整個(gè)方案效果的基石。 遭遇“假”VecBound性能瓶頸待根據(jù)優(yōu)化思路實(shí)現(xiàn)完一版后,測試性能卻發(fā)現(xiàn)效果與預(yù)期相差較遠(yuǎn):方案三:耗時(shí)最低,循環(huán)次數(shù)減少了16倍,vector下降10%?使用Vector操作,但是利用16*16的單位矩陣和原向量做乘法來一次生成16行的結(jié)果,并將結(jié)果直接放到m×

m的對(duì)角矩陣中。?使用Vector操作,按照行進(jìn)行遍歷,通過設(shè)置vector_mask=1,利用AscendC:add_v()方法每次在對(duì)角線上賦值一個(gè)元素。?使用Scalar指令完成:通過GetValue()、SetValue()方法,直接將目標(biāo)值賦到m×

m矩陣的對(duì)角線上

對(duì)角陣構(gòu)造方案

進(jìn)一步優(yōu)化:流水調(diào)整和掩蓋通過分析代碼和流水發(fā)現(xiàn),原來的代碼結(jié)構(gòu)在開啟double-buffer(雙緩沖區(qū))的情況下,是執(zhí)行完第一個(gè)步驟的Ping-Pong再去執(zhí)行下一個(gè)步驟的Ping-Pong:效果類似如:PingPong

Buffer通過將數(shù)據(jù)流分為兩部分(例如Tensor1和Tensor2),使得在計(jì)算Tensor1的同時(shí)可以進(jìn)行Tensor2的數(shù)據(jù)搬運(yùn)。

進(jìn)一步優(yōu)化:流水調(diào)整和掩蓋在原先的代碼流程里,得益于softmax1/2執(zhí)行時(shí)間都較長,所以cube計(jì)算都比較好地做了掩蓋,這樣的計(jì)算排布方式?jīng)]有任何問題。但是將onlineSoftmax計(jì)算移到cube之后,流水排布中產(chǎn)生了兩大變化:

Cube2中增加了onlineSoftmax步驟,耗時(shí)變長;

Softmax2中減少了onlineSoftmax步驟,耗時(shí)變短;

于是流水圖出現(xiàn)了下面的變化:

進(jìn)一步優(yōu)化:流水調(diào)整和掩蓋

經(jīng)過分析和測試,交換Softmax1-Pong和Cube2-Ping的執(zhí)行順序,類似下圖:

首先,這不會(huì)影響計(jì)算結(jié)果,因?yàn)镃ube2-Ping只依賴于Softmax1-Ping的計(jì)算完成,不依賴Softmax1-Pong的計(jì)算結(jié)果。

其次,這樣做的好處是使Cube2-Ping提前執(zhí)行,那么它就能更早地被Softmax1-Pong所掩蓋。而由于它被提前執(zhí)行結(jié)束了,依賴于它的Softmax2-Ping也能提前執(zhí)行,那么Vec之間的間隔也會(huì)減少,效果如下圖:效果:

算子總耗時(shí)下降了5%左右,整體性能提升來到了**8%**左右(1k序列場景)u

性能優(yōu)化要有整體視

角。需要從計(jì)算、內(nèi)

存搬移等多個(gè)角度考

慮。u

性能優(yōu)化中很重要的一部分內(nèi)容就是流水間的相互掩蓋。u

可以通過分析流水圖等方式,提升對(duì)流水掩蓋的直觀理解,完成流水優(yōu)化的最重要

一公里。u

考慮Pipe之間(不同計(jì)算單元、模塊)的掩蓋,如果沒有的話,即便某個(gè)pipe耗時(shí)只占1%,它的性能波動(dòng)仍然會(huì)同等程度地影響算子的總耗時(shí)。

思考基于AscendC的MC2通算融合算子性能優(yōu)化

挑戰(zhàn)2:計(jì)算效率與通信開銷的平衡?

MC2算子優(yōu)化

模型規(guī)模的指數(shù)級(jí)增長使得單設(shè)備訓(xùn)練在計(jì)算能力、存儲(chǔ)容量和能效等方面面臨根本性瓶頸,這使得分布式并行推理/訓(xùn)練從可選方案轉(zhuǎn)變?yōu)楸剡x技術(shù)路徑。以1750億參數(shù)的GPT-3模型為例,其訓(xùn)練至少需要數(shù)百GB的內(nèi)存資源。

傳統(tǒng)的單維度并行策略(如數(shù)據(jù)并行)

已無法滿足需求,而混合并行(HybridParallelism)通過同時(shí)切分計(jì)算圖(模型并行)、數(shù)據(jù)批次(數(shù)據(jù)并行)以及流水線階段(流水線并行),成為當(dāng)前主流解決方案。

昇騰CANN通過將需要切分并行的計(jì)算和通信算子進(jìn)行融合(又稱:

通算融合),實(shí)現(xiàn)了計(jì)算和通信的流水并行,從而提升性能。融合后的算子簡稱為MC2通算融合算子(

MatrixComputation&Communication)。在分布式推理/訓(xùn)練框架中,MC2性能優(yōu)化成為關(guān)鍵挑戰(zhàn)MM代表Matmul計(jì)算,

hcom代表通信任務(wù)。對(duì)Matmul計(jì)算的矩陣進(jìn)行切分,通過下一塊數(shù)據(jù)的Matmul計(jì)算與當(dāng)前數(shù)據(jù)塊的通信任務(wù)并行執(zhí)行,從而達(dá)到隱藏計(jì)算/通信時(shí)間的目的。上圖中,進(jìn)行Matmul計(jì)算的矩陣沿M軸(行)被切分為兩塊,則第二塊數(shù)據(jù)的Matmul計(jì)算和第一塊數(shù)據(jù)的通信可以并行執(zhí)行,從而通過隱藏計(jì)算時(shí)間提高算子性能。

MC2通算融合算子的性能收益MC2通算融合算子的性能收益主要來自于通信、計(jì)算的并行執(zhí)行。

瓶頸點(diǎn)1:通算時(shí)間差異大

若計(jì)算和通信任務(wù)的執(zhí)行時(shí)間相差不大,則融合后,

MC2算子的計(jì)算和通信并行執(zhí)行,能得到較好的流水掩蓋,性能收益較大。

若計(jì)算和通信任務(wù)的執(zhí)行時(shí)間差異較大,則融合后,

MC2算子內(nèi)計(jì)算和通信并行執(zhí)行,能夠掩蓋的時(shí)間較少,算子整體執(zhí)行耗時(shí)與未切分串行時(shí)的算子執(zhí)行耗時(shí)接近,此時(shí)無法獲得較大性能收益。 瓶頸點(diǎn)2:數(shù)據(jù)切分導(dǎo)致的計(jì)算或通信的執(zhí)行時(shí)間膨脹原本的整塊數(shù)據(jù)被切分成若干小數(shù)據(jù)塊,對(duì)若干小數(shù)據(jù)塊分別做Matmul計(jì)算或者執(zhí)行通信任務(wù),此時(shí)相比切分前,計(jì)算或者通信任務(wù)的執(zhí)行時(shí)間可能發(fā)生膨脹(執(zhí)行時(shí)間變長)。膨脹產(chǎn)生的原因包括:

切分后的數(shù)據(jù)塊過小導(dǎo)致計(jì)算或通信的效率降低;

切分的數(shù)據(jù)塊過多導(dǎo)致增加額外的調(diào)度開銷;

并行執(zhí)行后計(jì)算和通信對(duì)L2Cache(

L2Cache用于緩存訪問GM的數(shù)據(jù)(包括代碼段、數(shù)據(jù)段)

)或device存儲(chǔ)內(nèi)存的訪問沖突等。未發(fā)生膨脹數(shù)據(jù)切分前,

Matmul執(zhí)行時(shí)間為200us,將Matmul的輸入均勻切分為兩塊,假設(shè)切分后,每塊數(shù)據(jù)的Matmul執(zhí)行時(shí)間都是150us,通過計(jì)算的并行執(zhí)行,上圖實(shí)際性能收益為50us。數(shù)據(jù)切分前,

Matmul執(zhí)行時(shí)間為200us,將Matmul的輸入均勻切分為兩塊,假設(shè)切分后,每塊數(shù)據(jù)的Matmul執(zhí)行時(shí)間都是200us,通過計(jì)算的并行執(zhí)行,上圖實(shí)際性能收益為劣化50us。

計(jì)算和通信執(zhí)行時(shí)間較均衡的場景,有更好的流水掩蓋和性能收益;

同時(shí),性能收益也受到數(shù)據(jù)切分導(dǎo)致的執(zhí)行時(shí)間膨脹的影響。

需要制定并行切分策略,以達(dá)到最佳流水掩蓋效果。嚴(yán)重膨脹一般膨脹 瓶頸點(diǎn)2:數(shù)據(jù)切分導(dǎo)致的計(jì)算或通信的執(zhí)行時(shí)間膨脹1.判定bound場景。在制定數(shù)據(jù)切分策略前,對(duì)原始矩陣分別執(zhí)行計(jì)算和通信任務(wù),根據(jù)兩個(gè)任務(wù)的執(zhí)行時(shí)間判定bound場景。

當(dāng)K軸較大時(shí),計(jì)算量大,計(jì)算執(zhí)行時(shí)間大于通信執(zhí)行時(shí)間,此時(shí)計(jì)算為算子的瓶頸(bound);

反之,當(dāng)K軸較小時(shí),計(jì)算量小,計(jì)算執(zhí)行時(shí)間小于通信執(zhí)行時(shí)間,此時(shí)通信為算子的瓶頸。2.設(shè)定數(shù)據(jù)切分策略。

只切分M軸(行)。按M軸切分,則每行數(shù)據(jù)都是內(nèi)存連續(xù)的,滿足通信要求;若按N軸(列)切分,則每行數(shù)據(jù)都被切斷,導(dǎo)致通信數(shù)據(jù)的內(nèi)存不連續(xù),不滿足通信要求。

若A表示長塊、

B表示短塊,只能切出A或B連續(xù)排布的形式,方便任務(wù)做掩蓋。例如AAAB、

BAAA等情況。MC2優(yōu)化方案設(shè)計(jì)以MatmulAllreduce算子為例

,該算子中計(jì)算執(zhí)行在前,通信任務(wù)執(zhí)行在后。算子中的通信對(duì)象為Matmul的輸出矩陣,則通信任務(wù)的輸入shape為[M,

N]。方案設(shè)計(jì)步驟:M,

NM,

KK,

N@= 數(shù)據(jù)切分目標(biāo):盡可能多的流水掩蓋計(jì)算bound:對(duì)于同一個(gè)切分后的數(shù)據(jù)塊,計(jì)算執(zhí)行耗時(shí)大于通信執(zhí)行耗時(shí)。此時(shí),計(jì)算連續(xù),且通信的尾塊要短,如下圖所示。通信bound:對(duì)于同一個(gè)切分后的數(shù)據(jù)塊,通信執(zhí)行耗時(shí)大于計(jì)算執(zhí)行耗時(shí)

,此時(shí),通信連續(xù),且計(jì)算的頭快要短,如下圖所示。

MC2優(yōu)化方案:前置分析前置分析工作有:

確定bound場景。將輸入數(shù)據(jù)分別單獨(dú)執(zhí)行Matmul計(jì)算和AllReduce通信任務(wù),利用msProf工具(性能分析工具)分別采集執(zhí)行時(shí)間,判定時(shí)間較長的任務(wù)為對(duì)應(yīng)的bound場景。

對(duì)Matmul計(jì)算和AllReduce通信的數(shù)據(jù)量與執(zhí)行時(shí)間關(guān)系做公式擬合。將輸入數(shù)據(jù)按M軸切分,分別切成M軸為256、512、768、1024、2048的若干數(shù)據(jù)塊,這里可以根據(jù)實(shí)際情況調(diào)整切塊大小。得到的數(shù)據(jù)塊分別做AllReduce通信,利用msProf工具采集執(zhí)行時(shí)間,得到每個(gè)數(shù)據(jù)塊的執(zhí)行時(shí)間t1,t2,

...,tn。

MC2優(yōu)化方案:前置分析作圖分析數(shù)據(jù)量與對(duì)應(yīng)的執(zhí)行時(shí)間的關(guān)系,擬合得到公式t

=CostComm(m),其中m表示數(shù)據(jù)塊的M軸長度

,t表示數(shù)據(jù)塊的通信執(zhí)行時(shí)間。該映射關(guān)系一般為線性,若不滿足線性關(guān)系,可以采用分段擬合的方式。示例如下:數(shù)據(jù)量x

=

m*

N*sizeof(dataType),單位是Bytes。該擬合公式表示為:?x小于8MB:t

=

-0.9698202*x

*x

+

27.0622573

*

x

+

14.769,單

位是us。?x大于等于8MB:t

=

13.58491263*x

+

61.508333,單位是us。

MC2優(yōu)化方案:方案驗(yàn)證本MatmulAllreduce案例中,給定的輸入矩陣Shape為M=4096,

K=3072,

N=8192,數(shù)據(jù)類型為half,分核數(shù)為8,通過融合前msProf工具采集,得到該輸入的Matmul計(jì)算執(zhí)行時(shí)間為803us

,AllReduce通信執(zhí)行時(shí)間為1071us,總耗時(shí)1874us,屬于通信bound場景。按照上述的切分算法,本案例的具體切分情況如下:1.根據(jù)經(jīng)驗(yàn)值選定斷塊(bound場景中斷塊為頭塊,即切分的第一個(gè)數(shù)據(jù)塊)

M方向長度m0為384,則通信數(shù)據(jù)量x為:384*8192*2/

1024/

1024

=6MB。按通信擬合公式估算通信的執(zhí)行時(shí)間為143us??紤]可能會(huì)發(fā)生內(nèi)存帶寬沖突,因此再乘以1.15

的系數(shù),得出通信執(zhí)行時(shí)間164us。短塊經(jīng)驗(yàn)值公式,a、b、c表示根據(jù)經(jīng)驗(yàn)值給出的短塊長度的備選。?

a

*

K

*

N

>=4

*

1024

*

1024

*

1024

,a取不等式的最小值;?b

*

K

*

N/

1024+

b

*

N>=

6

*

1024

*

1024,

b取不等式的最小值;?

c>=

3

*

128

,c取不等式的最小值?m0

=

min(a,

b,

c)

MC2優(yōu)化方案:方案驗(yàn)證2.計(jì)算M方向長塊長度m1。根據(jù)短塊通信時(shí)間,配平長塊的計(jì)算執(zhí)bound行時(shí)間同樣為164us,即將t1作為長塊的計(jì)算執(zhí)行時(shí)間,帶入t1=CostMM(m1)公式,按計(jì)算擬合公式估算出該長度m1為768。3.根據(jù)M=4096、

m0=384、

m1=768,計(jì)算長塊個(gè)數(shù):(4096

-384)/768

=4.83,向下取整為4。4.根據(jù)短塊長度m0=384,長塊個(gè)數(shù)4,調(diào)整長塊m1長度:(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論