CATIA環(huán)境里專業(yè)顯卡的VBO性能分析
一、CATIA及VBO背景介紹
由法國(guó)Dassault(達(dá)索)系統(tǒng)公司開發(fā)的CATIA是CAD/CAM領(lǐng)域最高端的軟件,該軟件原本運(yùn)行于IBM UNIX工作站上,驅(qū)動(dòng)系統(tǒng)為VM/CMS,從V5版本之后開始移植到個(gè)人PC平臺(tái)上,使其強(qiáng)大的功能走進(jìn)了更多的企業(yè)設(shè)計(jì)人員。與UG、PRO/E等高端軟件相比,CATIA在曲面造型方面具有獨(dú)特的優(yōu)勢(shì),是任何三維CAD軟件所不能比擬的,因而廣泛應(yīng)用于航空、航天、汽車、船舶等行業(yè)的復(fù)雜曲面造型設(shè)計(jì)中,現(xiàn)在國(guó)內(nèi)外幾乎所有的飛機(jī)設(shè)計(jì)制造行業(yè)都使用CATIA。
使用CATIA的航空企業(yè)包括了Boeing、Dassault、Bombardier、Lockneed Martin等知名公司;汽車領(lǐng)域Renault、Toyota、Karman 、Volvo、Chrysler等公司也是CATIA的用戶。在造船、消費(fèi)品、高科技電子、廠房制造、裝配等領(lǐng)域擁有大量的客戶。
CATIA軟件提供了從概念設(shè)計(jì)到最終產(chǎn)品的全套跨行業(yè)解決方案,其功能模塊可以用車載斗量來(lái)描述。包括零件設(shè)計(jì)、裝配設(shè)計(jì)、交互式工程繪圖、結(jié)構(gòu)設(shè)計(jì)、創(chuàng)成式工程繪圖、鈑金設(shè)計(jì)、三維功能公差與標(biāo)注設(shè)計(jì)、模具設(shè)計(jì)、航空鈑金設(shè)計(jì)、線架和曲面設(shè)計(jì)、陰陽(yáng)模設(shè)計(jì)、焊接設(shè)計(jì)、自由風(fēng)格曲面造型、創(chuàng)成式曲面優(yōu)化、汽車A級(jí)曲面造型、汽車白車身接合、快速曲面重建、基于草圖的自由風(fēng)格曲面造型、電路板設(shè)計(jì)、電氣線束展平設(shè)計(jì)等數(shù)十項(xiàng)設(shè)計(jì)、加工、知識(shí)管理等子系統(tǒng)。
我們從“惠普HP xw8400工作站CATIA機(jī)械設(shè)計(jì)應(yīng)用測(cè)試”一文開始進(jìn)行CATIA圖形測(cè)試至今,發(fā)現(xiàn)了一個(gè)規(guī)律:相同架構(gòu)不同檔次的NVIDIA Quadro FX顯卡(從FX 370到FX 3700)在CATIA測(cè)試中表現(xiàn)完全相同,而SolidWorks下的差距也不明顯(部分大模型例外)。這不禁讓我們懷疑Dassault軟件的圖形引擎是否充分發(fā)揮了專業(yè)顯卡的OpenGL硬件加速?在這種情況下購(gòu)買2000元以上的中高端專業(yè)顯卡運(yùn)行這2個(gè)軟件還有沒有意義?
另外,在“NVIDIA和AMD_ATI專業(yè)顯卡誰(shuí)更強(qiáng)?-FireGL V5600對(duì)決Quadro FX1700”一文中,我們通過(guò)測(cè)試發(fā)現(xiàn)ATI FireGL專業(yè)顯卡在CATIA中的表現(xiàn)明顯不如NVIDIA Quadro FX,這是由于沒有開啟VBO功能的緣故。
AMD/ATI與Dassault合作研發(fā)的VBO技術(shù)
VBO(Vertex Buffer Objects,頂點(diǎn)緩沖對(duì)象)是OpenGL API的一個(gè)擴(kuò)展函數(shù),AMD/ATI與Dassault合作研發(fā)的一項(xiàng)技術(shù),用于提升CATIA和SolidWorks軟件中的3D圖形速度,充分發(fā)揮專業(yè)顯卡的OpenGL硬件加速能力。VBO技術(shù)能夠?qū)⒍噙呅魏图y理數(shù)據(jù)放置在顯存中,這樣CPU與GPU之間的指令 / 數(shù)據(jù)傳輸就不再受到系統(tǒng)內(nèi)存的帶寬限制。AMD宣稱VBO能帶來(lái)5~10倍的性能提升(估計(jì)是相對(duì)于非專業(yè)顯卡而言),事實(shí)上如果能夠在現(xiàn)有的圖形工作站基礎(chǔ)上將速度提高一倍,就已經(jīng)相當(dāng)驚人了。
AMD/ATI官方公布的VBO在CATIA中性能提升情況
打開VBO功能的前提條件
1.CATIA V5R18 SP4以上或者V5R19;SolidWorks 2009或以上
2.目前主流AMD/ATI FirePro (FireGL) 專業(yè)顯卡… NVIDIA Quadro FX?
3.添加Windows系統(tǒng)環(huán)境變量(CATIA)
在以上3個(gè)條件中,由于VBO是最近幾年才有的技術(shù),因此使用CATIA V5R18 SP3、SolidWorks 2008或者之前版本的用戶只有更新軟件版本才可以使用該功能。VBO到底會(huì)給FirePro(FireGL)帶來(lái)多大的性能提升?NVIDIA的Quadro FX系列專業(yè)顯卡是否也能夠支持VBO?我們將通過(guò)下文中的應(yīng)用測(cè)試來(lái)讓大家了解。CATIA默認(rèn)并不會(huì)打開VBO功能,需要在Windows系統(tǒng)下添加環(huán)境變量才能實(shí)現(xiàn)(見下圖);而SolidWorks 2009直接就能夠支持,不需要專門的設(shè)置。
“CAT_VBO_ALLOWED”變量的值可以設(shè)為“1”或“2”,由于沒有這方面的詳細(xì)資料,我們并不清楚兩種模式在實(shí)現(xiàn)原理上的差別,后面我們會(huì)用測(cè)試來(lái)比較它們的效果。另外,如果把這個(gè)變量值設(shè)置為0,VBO功能不會(huì)打開。
測(cè)試平臺(tái) #p#page_title#e#
硬件配置
主機(jī) 惠普HP xw4600工作站
芯片組 Intel X38 Express
CPU Intel Core 2 Duo E8300 2.83GHz 6MB/1333MHz FSB
內(nèi)存 2GB DDR2-800 ECC 雙通道
硬盤 Seagete 7200.10 160GB SATA 7200rpm
顯卡 AMD/ATI FirePro V5700 NVIDIA Quadro FX 3700
軟件配置
操作系統(tǒng) Windows XP Professional SP2
顯卡驅(qū)動(dòng) ATI Catalyst 8.543 NVIDIA Forceware 178.46
應(yīng)用軟件 CATIA V5R19(VBO打開/關(guān)閉)
SolidWorks 2009、2007 SP0.0
測(cè)試軟件 CATBench2005
SPECapc for SolidWorks 2007
顯示器分辨率 1280×1024
其它 關(guān)閉垂直同步
說(shuō)明:我們選擇了AMD的FirePro V5700中端專業(yè)顯卡進(jìn)行測(cè)試,并使用NVIDIA Quadro FX 3700作為對(duì)比,分別測(cè)試2款顯卡在打開VBO之前和之后兩種情況下的CATIA圖形速度。CATBench 2005測(cè)試軟件是針對(duì)CATIA V5R14 SP5設(shè)計(jì)的,不過(guò)我們本次進(jìn)行的圖形部分(CATBench2005G)測(cè)試只是用到其中的模型,其對(duì)比結(jié)果依然具有實(shí)際的參考意義。SPECapc for SolidWorks 2007是專門用于測(cè)試2007版本的SolidWorks軟件,在2009下運(yùn)行會(huì)出現(xiàn)“重新保存模型”的提示,但是仍然能夠正常完成并得到結(jié)果。我們只是用來(lái)對(duì)比2個(gè)版本之間的測(cè)試成績(jī)高低,分析VBO在其中起到的作用。
二、CATIA V5R19 VBO性能測(cè)試
注:“VBO=1”代表VBO功能打開,變量值設(shè)為1;“VBO=2”代表VBO打開且變量值設(shè)為2。以下相同
CATBench2005G的測(cè)試成績(jī)是“以參考系統(tǒng)所用的時(shí)間為基準(zhǔn),被測(cè)系統(tǒng)的總運(yùn)行時(shí)間占參考系統(tǒng)的百分比”,因此得分越小代表圖形速度越快。我們看到,無(wú)論是ATI FirePro(FireGL)還是NVIDIA Quadro FX專業(yè)顯卡都能從VBO技術(shù)中明顯獲益。FirePro V5700在打開VBO之后只用了不到之前一半的測(cè)試時(shí)間,速度提高超過(guò)了一倍。在默認(rèn)情況下(VBO關(guān)閉),F(xiàn)irePro在CATIA中的表現(xiàn)大幅落后與Quadro;而在啟用VBO功能時(shí),二者的表現(xiàn)已經(jīng)相當(dāng)接近。在3個(gè)單項(xiàng)成績(jī)中,VBO在線框顯示模式中帶來(lái)的性能提升多于著色模式,特別是Quadro FX顯卡(估計(jì)NVIDIA專業(yè)顯卡驅(qū)動(dòng)之前對(duì)CATIA著色應(yīng)用的優(yōu)化已經(jīng)相當(dāng)好了,進(jìn)一步改善的余地已經(jīng)不大)。
VBO目前存在的一些問(wèn)題
這里要特別說(shuō)明一下:我們通過(guò)測(cè)試發(fā)現(xiàn),VBO環(huán)境變量設(shè)為“1”時(shí)要比“2”的性能更好一些,不過(guò)暫時(shí)還有一些小問(wèn)題。Quadro FX 3700顯卡(VBO=1)在測(cè)試中關(guān)閉模型打開另一個(gè)模型時(shí),會(huì)隨機(jī)出現(xiàn)CATIA停止響應(yīng)的情況,只能強(qiáng)行結(jié)束程序;FirePro V5700的問(wèn)題沒有這么嚴(yán)重,但也會(huì)發(fā)生重新載入模型后性能異常下降(類似于VBO失效)的情況,只有退出CATIA軟件再啟動(dòng)才能解決。因此,我們最終記錄的Quadro FX測(cè)試成績(jī)是VBO變量設(shè)為“2”時(shí)的結(jié)果。相信NVIDIA和AMD/ATI在注意到這個(gè)問(wèn)題后能夠通過(guò)升級(jí)顯卡驅(qū)動(dòng)來(lái)解決。
另外,在部分顯示模式下,打開VBO前后的模型效果也有一些區(qū)別。見下方截圖:
Auto Driveline(汽車傳動(dòng)桿)模型線框——VBO關(guān)閉
Auto Driveline(汽車傳動(dòng)桿)模型線框——VBO打開
我們看到,在打開VBO之后,Driveline模型線框顯示下多出了一些連線。
Auto Body(汽車車身)模型隱含線顯示——VBO關(guān)閉
Auto Body(汽車車身)模型隱含線顯示——VBO=1
Auto Body(汽車車身)模型隱含線顯示——VBO=2
我們還注意到,VBO環(huán)境變量設(shè)為“1”和“2”時(shí),隱藏線模式的顯示效果與打開VBO之前也有所區(qū)別。當(dāng)VBO=1時(shí),模型顯示中增加了很多條參考輔助線;而VBO=2時(shí)則比較差強(qiáng)人意,基本沒有看到隱藏線。 #p#page_title#e#
除了上面列出的幾個(gè)問(wèn)題,測(cè)試中VBO的總體表現(xiàn)還是讓人滿意的。下面我們將列出測(cè)試中7個(gè)不同大小的模型顯示速度提高的詳細(xì)情況,讓大家實(shí)實(shí)在在感受一下VBO帶來(lái)的好處。
不同模型幀速度、可視化時(shí)間測(cè)試詳細(xì)結(jié)果
以上是每個(gè)測(cè)試模型在“著色+線框”、著色和線框3種顯示模式下速度的平均值。在前兩個(gè)小模型(文件大?。?~2MB)上,VBO的作用似乎不明顯;而Holland Submarine(潛水艇)和Auto Driveline兩個(gè)模型測(cè)試中的效果最好。其中A卡(FirePro V5700)和N卡(Quadro FX 3700)在潛水艇模型上的幀速度分別由9.3、13.7上升至24.9和28.3,而汽車傳動(dòng)模型也由10幀或者更低提升到將近20幀/秒,主觀上感覺操作時(shí)的流暢度大為提高。VBO帶來(lái)的提升幅度與模型大小(從上到下依次增大)沒有必然的聯(lián)系,倒是和模型的特征關(guān)系密切。
再來(lái)看一下后面5個(gè)相對(duì)大一些模型的具體測(cè)試成績(jī):
Engine Assembly(發(fā)動(dòng)機(jī)裝配)模型 3.6MB
我們?cè)谶@里看到的差距比前面的“平均幀速度”明顯更大,AMD/ATI和NVIDIA專業(yè)顯卡在打開VBO后性能提高了1~3倍。產(chǎn)生這種差異與CATBench2005測(cè)試結(jié)果表對(duì)圖形幀速度的計(jì)算方法有關(guān),因?yàn)闇y(cè)試中的原始記錄都是可視化時(shí)間(Visualization Time),也就是模型旋轉(zhuǎn)過(guò)程中顯示每一幀所用的平均時(shí)間(見下圖),單位是ms(毫秒),然后通過(guò)“1/((1/Frequency*)+(Xxx/1000))”這個(gè)工式計(jì)算出幀速度。其中“Xxx”就是Excel表格中的一項(xiàng)時(shí)間記錄,除以1000之后其單位就由毫秒變成了秒,此時(shí)還要加上一個(gè)參數(shù)(Frequency*是表格內(nèi)置的一個(gè)函數(shù))后,再被1除得到結(jié)果。當(dāng)然CATIA Community對(duì)軟件本身的了解肯定要比我們深入的多,加上去的“參數(shù)”應(yīng)該是圖形可視化之外的環(huán)節(jié)消耗的時(shí)間。不過(guò)這樣計(jì)算出的“幀速度”好像比實(shí)際值要小一些,特別是在測(cè)試小模型時(shí),由于可視化時(shí)間的記錄值較小,受到的“影響”更大。例如前面提到那2個(gè)最小的模型,在超過(guò)50幀/秒之后就看不到明顯的變化了。
CATBench2005圖形測(cè)試
在Engine Assembly這個(gè)并不算太大的模型中,不同模式下VBO產(chǎn)生的性能提高幅度大小依次為:“著色+線框及隱含線”、“著色+線框”、著色和線框,也就是說(shuō)顯示效果越復(fù)雜提升就越大。盡管ATI FirePro(FireGL)因此受益更多,但最終成績(jī)NVIDIA Quadro還是更勝一籌(也不排除是FX 3700本身定位更高的緣故)。
Auto Body Front(汽車前部分車身)模型 12.4MB
Auto Body Front是BMW(寶馬)汽車提供的模型,比前面幾個(gè)更大一些。測(cè)試中VBO的優(yōu)勢(shì)沒有發(fā)動(dòng)機(jī)模型那么大,Quadro FX 3700在著色模式下甚至不升反降,可見NVIDIA專業(yè)顯卡178.46版驅(qū)動(dòng)對(duì)VBO的支持還有待改進(jìn)。
Holland Submarine(潛水艇)模型 20.2MB
潛水艇模型測(cè)試中VBO的效果非常好,AMD/ATI和NVIDIA專業(yè)顯卡在不同顯示模式下的速度分別提高了2~5倍。打開VBO后Quadro FX 3700仍然保持一定的領(lǐng)先。
Auto Driveline(汽車傳動(dòng)桿)模型 63.5MB
Auto Driveline模型是BMW汽車的傳動(dòng)裝置。隨著模型的增大,可視化時(shí)間的延長(zhǎng)和幀速度的下降是正常的。不過(guò)VBO的作用還是非常明顯,優(yōu)化后的成績(jī)FirePro V5700與FX 3700基本處于同一水平。
Auto Body(汽車車身)模型 86.6MB
Auto Body Front是BMW提供的汽車車身模型。在本次測(cè)試中最大的這個(gè)裝配體上,VBO功能帶來(lái)的提升沒有前面幾個(gè)模型那么大,尤其是著色顯示方式下。這可能與該模型在色彩方面的特征相對(duì)簡(jiǎn)單有關(guān)。
三、SolidWorks 2007 vs. 2009
由于SolidWorks 2009版本直接支持VBO,不需要專門的設(shè)置,因此這部分不是本文的重點(diǎn),更像是比較SolidWorks 2007和2009之間的性能差距。我們?cè)?個(gè)版本的軟件中分別運(yùn)行SPECapc for SolidWorks 2007測(cè)試包,發(fā)現(xiàn)AMD/ATI FirePro和NVIDIA Quadro FX專業(yè)顯卡在2009下的成績(jī)都出現(xiàn)了一定的下降。不過(guò)這并不代表2009的性能就比2007差,因?yàn)槭褂玫臏y(cè)試軟件是專為SolidWorks 2007設(shè)計(jì)的,里面用到的模型也都為該版本優(yōu)化過(guò)。下面我們來(lái)看一下具體的圖形測(cè)試時(shí)間記錄。 #p#page_title#e#
我們看到前面4項(xiàng)小模型測(cè)試在SolidWorks 2009中用的時(shí)間都大大超過(guò)2007,而后面幾個(gè)大模型2009版本就表現(xiàn)出了明顯的優(yōu)勢(shì),無(wú)論FirePro V5700還是Quadro FX 3700都能從VBO功能上獲益??傮w表現(xiàn)上FX 3700依然更勝一籌,不過(guò)V5700在最后一個(gè)大發(fā)動(dòng)機(jī)模型中領(lǐng)先。
SolidWorks 2009中的模型顯示效果
SolidWorks 2009默認(rèn)會(huì)打開RealView顯示功能,模型在預(yù)覽模式下的顯示效果會(huì)好很多(諸如光照和反射等,但是沒有了透明?)。而在SolidWorks 2007下AMD FirePro V5700顯卡使用8.543版本驅(qū)動(dòng)時(shí)無(wú)法打開RealView,NVIDIA Quadro FX 3700雖然能夠選中該功能,但是GTX賽車模型的顯示卻沒有變化(見下圖)。我們估計(jì),2009版本小模型測(cè)試成績(jī)不佳可能與RealView有關(guān),因?yàn)樗嗌贂?huì)消耗一定的資源。
SolidWorks 2007中的模型顯示效果
下面是AMD官方的SolidWorks VBO技術(shù)演示視頻:
總結(jié)——VBO應(yīng)用展望
在本文的測(cè)試中,VBO功能給CATIA和SolidWorks大模型應(yīng)用帶來(lái)的性能提升還是相當(dāng)大的,而且關(guān)鍵還是在現(xiàn)有硬件平臺(tái)(工作站和專業(yè)顯卡)無(wú)需添加任何設(shè)備的前提下。盡管該技術(shù)目前還存在一些小問(wèn)題,但對(duì)主流應(yīng)用沒有大礙。因此我們認(rèn)為VBO是廠商給用戶提供的一個(gè)免費(fèi)蛋糕。
SolidWorks 2009自身集成了VBO功能,軟件廠商的宣傳會(huì)傾向于新版本軟件在性能上的優(yōu)化,因此大家容易忽略這個(gè)特性。而CATIA默認(rèn)并未打開VBO,也沒有公開宣傳,說(shuō)明它還有一些不成熟的地方。然而我們?cè)跍y(cè)試中實(shí)在的感受到了速度變化,大模型的處理更加流暢,能夠直接帶來(lái)工作效率的提高,我想這已經(jīng)足夠了。
從本文中,我們可以看出硬件廠商和ISV(Independent Software Vendors,獨(dú)立軟件供應(yīng)商)之間聯(lián)盟的重要性。軟件針對(duì)流行的硬件進(jìn)行優(yōu)化,才能夠最大限度的發(fā)揮出硬件的性能,同時(shí)提升軟件應(yīng)用的效率。整個(gè)工作站行業(yè),惠普在這方面應(yīng)該說(shuō)是做得比較好的,HP和Dassault也是多年的合作伙伴。然而作為惠普工作站優(yōu)勢(shì)之一的PTF性能調(diào)優(yōu)軟件中的Hypertune模塊早已不再對(duì)CATIA提供支持,只剩下UGS NX的優(yōu)化,關(guān)于VBO功能之前也沒見到HP有相關(guān)的宣傳。
由于VBO是在OpenGL基礎(chǔ)上開發(fā)的技術(shù),因此NVIDIA Quadro FX專業(yè)顯卡也同樣能夠受益,不過(guò)我們還是應(yīng)該感謝AMD/ATI FireGL團(tuán)隊(duì)對(duì)此作出的努力。
至本文截稿之時(shí),我們測(cè)試了NVIDIA較新的181.20版專業(yè)顯卡驅(qū)動(dòng),發(fā)現(xiàn)該驅(qū)動(dòng)對(duì)VBO的支持更好,在環(huán)境變量設(shè)為“1”時(shí)不再出現(xiàn)CATIA停止相應(yīng)的情況,而且性能進(jìn)一步提高。然而有趣的是:中低端的Quadro FX 570和頂級(jí)產(chǎn)品FX 5800的表現(xiàn)似乎相同,這不禁讓我們懷疑VBO到底發(fā)揮的是硬件性能還是專業(yè)顯卡的OpenGL驅(qū)動(dòng)?總之今后我們還會(huì)進(jìn)行VBO方面的測(cè)試,繼續(xù)關(guān)注該技術(shù)的發(fā)展。
對(duì)于正在使用圖形工作站和專業(yè)顯卡的CATIA用戶,都可以按照本文中提到的方法(添加系統(tǒng)環(huán)境變量)打開VBO功能,親自體驗(yàn)一下它帶來(lái)的改善。近期準(zhǔn)備采購(gòu)硬件設(shè)備的用戶也應(yīng)該關(guān)注一下這方面,以更好的優(yōu)化資金利用。