成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

少花錢搭建深度學(xué)習(xí)系統(tǒng)的硬件指南

anRui / 3551人閱讀

摘要:本文將告訴你如何用最省錢的方式,來搭建一個高性能深度學(xué)習(xí)系統(tǒng)。

由于深度學(xué)習(xí)的計算相當(dāng)密集,所以有人覺得“必須要購買一個多核快速CPU”, 也有人認(rèn)為“購買快速CPU可能是種浪費”。

?

那么,這兩種觀點哪個是對的? 其實,在建立深度學(xué)習(xí)系統(tǒng)時,最糟糕的事情之一就是把錢浪費在不必要的硬件上。 本文將告訴你如何用最省錢的方式,來搭建一個高性能深度學(xué)習(xí)系統(tǒng)。

當(dāng)初,在我研究并行深度學(xué)習(xí)過程中,我構(gòu)建了一個GPU集群 ,所以我需要仔細(xì)選擇硬件。 盡管經(jīng)過了反復(fù)的研究和推理,但當(dāng)我挑選硬件時,我仍然會犯許多錯誤,并且當(dāng)應(yīng)用于實踐中時,那些錯誤就展現(xiàn)出來了。 所以,在這里,我想分享一下我所學(xué)到的知識,希望你不會像我一樣再陷入同樣的陷阱。

?

GPU

本文假設(shè)您將使用GPU進行深度學(xué)習(xí)。 如果您正在建立或升級您的系統(tǒng),那么忽視GPU是不明智的。 GPU才是深度學(xué)習(xí)應(yīng)用的核心,它能大大提升處理速度,所以不能忽略。

我在之前的文章中詳細(xì)介紹了GPU的選擇,并且GPU的選擇可能是您的深度學(xué)習(xí)系統(tǒng)中最關(guān)鍵的選擇。?

一般來說,如果您的資金預(yù)算有限,我推薦您購買GTX 680,或者GTX Titan X(如果你很有錢,可用它做卷積)或GTX 980(它性價比很高,但若做大型卷積神經(jīng)網(wǎng)絡(luò)就有些局限性了),它們在eBay上就能買得到。

另外,低成本高性價比的內(nèi)存我推薦GTX Titan。 之前我支持過GTX 580,但是由于新更新的cuDNN庫顯著提升了卷積速度,故而所有不支持cuDNN的GPU都已經(jīng)過時了,其中 GTX 580就是這樣一款GPU。 如果您不使用卷積神經(jīng)網(wǎng)絡(luò),GTX 580仍然是一個很好的選擇。

你能識別上面哪個硬件會導(dǎo)致糟糕的表現(xiàn)? 是這些GPU的其中一個? 還是CPU?

?

CPU

要選擇CPU,我們首先要了解CPU及它與深度學(xué)習(xí)的關(guān)系。

CPU對深度學(xué)習(xí)有什么作用? 當(dāng)您在GPU上運行深度網(wǎng)絡(luò)時,CPU幾乎沒有計算,

但是CPU仍然可以處理以下事情:

在代碼中寫入和讀取變量

執(zhí)行諸如函數(shù)調(diào)用的指令

在GPU上啟動函數(shù)調(diào)用

創(chuàng)建小批量數(shù)據(jù)

啟動到GPU的數(shù)據(jù)傳輸

?

所需CPU的數(shù)量

當(dāng)我用三個不同的庫訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時,我總是看到一個CPU線程是100%(有時另一個線程會在0到100%之間波動)。 而且這一切立即告訴你,大多數(shù)深入學(xué)習(xí)的庫,以及實際上大多數(shù)的軟件應(yīng)用程序,一般僅使用一個線程。?

這意味著多核CPU相當(dāng)無用。 如果您運行多個GPU,并使用MPI之類的并行化框架,那么您將一次運行多個程序,同時,也需要多個線程。?

每個GPU應(yīng)該是一個線程,但每個GPU運行兩個線程將會為大多數(shù)深入學(xué)習(xí)庫帶來更好的性能;這些庫在單核上運行,但是有時會異步調(diào)用函數(shù),就使用了第二個CPU線程。?

請記住,許多CPU可以在每個內(nèi)核上運行多個線程(這對于Intel 的CPU尤為如此),因此通常每個GPU對應(yīng)一個CPU核就足夠了。

?

CPU和PCI-Express

這是一個陷阱! 一些新的Haswell CPU不支持那些舊CPU所支持的全部40個PCIe通道。如果要使用多個GPU構(gòu)建系統(tǒng),請避免使用這些CPU。 另外,如果您有一個帶有3.0的主板,則還要確保您的處理器支持PCIe 3.0。

?

CPU緩存大小

正如我們將在后面看到的那樣,CPU高速緩存大小在“CPU-GPU-管線”方面是相當(dāng)無關(guān)緊要的,但是我還是要做一個簡短的分析,以便我們確保沿著這條計算機管道能考慮到每一個可能出現(xiàn)的瓶頸,進而我們可以全面了解整體流程。

通常人們購買CPU時會忽略緩存,但通常它是整體性能問題中非常重要的一部分。 CPU緩存的片上容量非常小,且位置非??拷麮PU,可用于高速計算和操作。 CPU通常具有緩存的分級,從小型高速緩存(L1,L2)到低速大型緩存(L3,L4)。?

作為程序員,您可以將其視為哈希表,其中每個數(shù)據(jù)都是鍵值對(key-value-pair),您可以在特定鍵上進行快速查找:如果找到該鍵,則可以對高速緩存中的值執(zhí)行快速讀寫操作; 如果沒有找到(這被稱為緩存未命中),則CPU將需要等待RAM趕上,然后從那里讀取該值(這是非常緩慢的過程)。 重復(fù)的緩存未命中會導(dǎo)致性能顯著降低。 高效的CPU高速緩存方案和架構(gòu),通常對CPU的性能至關(guān)重要。

CPU如何確定其緩存方案,是一個非常復(fù)雜的主題,但通常可以假定重復(fù)使用的變量、指令和RAM地址將保留在緩存中,而其他不太頻繁出現(xiàn)的則不會。

在深度學(xué)習(xí)中,相同的內(nèi)存范圍會重復(fù)被小批量讀取,直到送到GPU,并且該內(nèi)存范圍會被新數(shù)據(jù)覆蓋。但是如果內(nèi)存數(shù)據(jù)可以存儲在緩存中,則取決于小批量大小。?

對于128位的小批量大小,我們對應(yīng)于MNIST和CIFAR分別有0.4MB和1.5 MB,這適合大多數(shù)CPU緩存;對于ImageNet,我們每個小批量有超過85 MB的數(shù)據(jù)( ),即使是較大的緩存(L3緩存不超過幾MB),也算是很大的了。

由于數(shù)據(jù)集通常太大而無法適應(yīng)緩存,所以新的數(shù)據(jù)需要從RAM中每個讀取一小部分新的,并且需要能夠以任何方式持續(xù)訪問RAM。

?

RAM內(nèi)存地址保留在緩存中(CPU可以在緩存中執(zhí)行快速查找,并指向RAM中數(shù)據(jù)的確切位置),但是這僅限于整個數(shù)據(jù)集都存儲于RAM時才會如此,否則內(nèi)存地址將改變,并且緩存也不會加速(稍后你會看到的,使用固定內(nèi)存時則不會出現(xiàn)這種情況,但這并不重要)。

?

深度學(xué)習(xí)代碼的其他部分(如變量和函數(shù)調(diào)用),將從緩存中受益,但這些代碼通常數(shù)量較少,可輕松適應(yīng)幾乎任何CPU的小型快速L1緩存。

?

從這個推理結(jié)果可以看出,CPU緩存大小不應(yīng)該很重要。下一節(jié)進一步分析的結(jié)果,也與此結(jié)論相一致。

?

所需的CPU時鐘頻率(frequency)

當(dāng)人們想到快速的CPU時,他們通常首先想到時鐘頻率(clockrate)。 4GHz真的比3.5GHz快嗎?這對于具有相同架構(gòu)的處理器來說,通常是正確的,例如“Ivy Bridge”。但在不同架構(gòu)的處理器之間,就不能這樣比較了。 此外,時鐘頻率也并非總是較佳的性能指標(biāo)。

?

在深度學(xué)習(xí)上,使用CPU的計算很少:比如增加一些變量、評估一些布爾表達式、在GPU或程序中調(diào)用一些函數(shù)。以上這些都取決于CPU內(nèi)核時鐘率。雖然這個推理似乎是合理的,但是當(dāng)我運行深度學(xué)習(xí)程序時,CPU卻有100%的使用率,這是為什么? 為了找到原因,我做了一些CPU核頻率的降頻實驗。

在MNIST和ImageNet上的CPU降頻測試 :以上數(shù)據(jù),是在具有不同CPU內(nèi)核時鐘頻率時,對ImageNet運行200個周期MNIST數(shù)據(jù)集,或1/4 ImageNet周期所用時間,進行性能測量的。其中以較大時鐘頻率作為每個CPU的基準(zhǔn)線。 為了比較:從GTX 680升級到GTX Titan,性能約為15%; 從GTX Titan到GTX 980提升20%; GPU超頻為所有GPU提升約5%的性能。

?

那么為什么CPU內(nèi)核頻率對系統(tǒng)來說無關(guān)緊要,而使用率卻是100%? 答案可能是CPU緩存未命中(CPU持續(xù)忙于訪問RAM,但是同時CPU必須等待RAM以跟上其較慢的時鐘頻率,這可能會導(dǎo)致忙碌和等待兩者同時存在的矛盾狀態(tài))。 如果這是真的,就像上面看到的結(jié)果一樣,那么CPU內(nèi)核的降頻不會導(dǎo)致性能急劇下降。

?

另外,CPU還執(zhí)行其他操作,如將數(shù)據(jù)復(fù)制到小批量中,并將準(zhǔn)備復(fù)制到GPU的數(shù)據(jù)準(zhǔn)備好,但這些操作取決于內(nèi)存時鐘頻率,而不是CPU內(nèi)核時鐘頻率。 所以,現(xiàn)在我們來看看內(nèi)存方面。

?

RAM時鐘頻率

CPU-RAM,以及與RAM的其他交互,都相當(dāng)復(fù)雜。 我將在這里展示一個簡化版本的過程。為了能更全面地理解,就我們先來深入了解從CPU RAM到GPU RAM這一過程。

CPU內(nèi)存時鐘和RAM交織在一起。 您的CPU的內(nèi)存時鐘決定了RAM的較大時鐘頻率,這兩個部分構(gòu)成CPU的總體內(nèi)存帶寬,但通常RAM本身確定了總體可用帶寬,原因是它比CPU內(nèi)存頻率慢。?

您可以這樣確定帶寬:

(其中64是指64位CPU架構(gòu)。 對于我的處理器和RAM模塊,帶寬為51.2GB / s)

?

但是,如果您復(fù)制大量的數(shù)據(jù),這時會和帶寬相關(guān)。 通常,您的RAM上的時序(例如8-8-8)對于小數(shù)據(jù)量來說更為相關(guān),并且決定您的CPU等待RAM追趕的時間。 但是如上所述,您深入學(xué)習(xí)程序中的幾乎所有數(shù)據(jù)都將輕松適應(yīng)CPU緩存,除非因為太大,才無法從緩存中獲益。 這意味著計時器將是不重要的,而帶寬可能才是重要的。

?

那么這與深度學(xué)習(xí)程序有什么關(guān)系呢? 我剛剛只是說帶寬可能很重要,但是在下一步里,它就不是很重要了。 您的RAM的內(nèi)存帶寬決定了一個小批量可以被重寫和分配用于初始化GPU傳輸?shù)乃俣?,但下一步,CPU-RAM到GPU-RAM是真正的瓶頸,這一步使用直接內(nèi)存存?。―MA)。 如上所述,我的RAM模塊的內(nèi)存帶寬為51.2GB/ s,但DMA帶寬只有12GB / s!

?

DMA帶寬與常規(guī)帶寬有關(guān),但細(xì)節(jié)并不一定必須了解。如果您想詳細(xì)了解,可到該維基百科詞條查看,您可以在詞條內(nèi)查找RAM模塊的DMA帶寬(峰值傳輸限制)。 但是先讓我們看看DMA是如何工作的吧。

(地址:https://en.wikipedia.org/wiki/DDR3_SDRAM#JEDEC_standard_modules)?

?

直接內(nèi)存存?。―MA)

具有RAM的CPU只能通過DMA與GPU進行通信。?

在第一步中,CPU RAM和GPU RAM都保留特定的DMA傳輸緩沖區(qū);?

在第二步,CPU將請求的數(shù)據(jù)寫入CPU側(cè)的DMA緩沖區(qū);?

在第三步中,保留的緩沖區(qū)無需CPU的幫助即可傳輸?shù)紾PURAM。?

這里有人可能會想:你的PCIe帶寬是8GB / s(PCIe 2.0)或15.75GB / s(PCIe 3.0),所以你應(yīng)該買一個像上面所說的良好峰值傳輸限制的RAM嗎?

答案是:不必要。 軟件在這里會扮演重要角色。 如果你以一種聰明的方式進行一些傳輸,那么你就不再需要那些便宜且慢的內(nèi)存。?

?

異步迷你批量分配(Asynchronousmini-batch allocation)

一旦您的GPU完成了當(dāng)前迷你批量的計算,它就想立即計算下一迷你批次(mini-batch)。 您現(xiàn)在可以初始化DMA傳輸,然后等待傳輸完成,以便您的GPU可以繼續(xù)處理數(shù)字。

但是有一個更有效的方法:提前準(zhǔn)備下一個迷你批量,以便讓您的GPU不必等待。 這可以輕松且異步地完成,而不會降低GPU性能。

用于異步迷你批次分配的CUDA代碼:當(dāng)GPU開始處理當(dāng)前批次時,執(zhí)行前兩次調(diào)用; 當(dāng)GPU完成當(dāng)前批處理時,執(zhí)行最后兩個調(diào)用。 數(shù)據(jù)傳輸在數(shù)據(jù)流的第二步同步之前就已經(jīng)完成,因此GPU處理下一批次將不會有任何延遲。

??

Alex Krishevsky的卷積網(wǎng)絡(luò)的ImageNet 2012迷你批次的大小為128,僅需要0.35秒就能完成它的完整的反向傳遞。 我們能夠在如此短時間內(nèi)分配下一批嗎?

如果我們采用大小為128的批次,并且維度244x244x3大小的數(shù)據(jù),總量大約為0.085 GB( )。 若使用超慢內(nèi)存,我們有6.4 GB / s,即每秒75個迷你批次! 所以使用異步迷你批量分配,即使是最慢的RAM對深入學(xué)習(xí)也將足夠。如果使用異步迷你批量分配,購買更快的RAM模塊沒有任何優(yōu)勢。

該過程也間接地意味著CPU緩存是無關(guān)緊要的。 您的CPU的快速覆蓋速度(在快速緩存中),以及準(zhǔn)備(將緩存寫到RAM)一個迷你批次其實并不重要,因為在GPU請求下一個迷你批次之前,整個傳輸就已經(jīng)完成了,所以一個大型緩存真的沒那么重要。

所以底線確實是RAM的時鐘頻率是無關(guān)緊要的,所以買便宜的就行了。

但你需要買多少個呢?

?

RAM大小

您應(yīng)該至少具有與GPU內(nèi)存大小相同的RAM。 當(dāng)然,您可以使用較少的RAM,但這樣的話可能需要一步一步地傳輸數(shù)據(jù)。 然而,從我的經(jīng)驗來看,使用更大的RAM會更加方便。

心理學(xué)告訴我們,專注力是隨著時間的推移會慢慢耗盡的一種資源。有些為數(shù)不多的硬件,可以幫您節(jié)省注意力資源以解決更困難的編程問題, RAM就是其中之一。 如果您有更多的RAM,您可以將更多的時間投入到更緊迫的事情上,而不是花費大量的時間來彌補RAM瓶頸。?

有了很多RAM,您可以避免這些瓶頸,節(jié)省時間并提高生產(chǎn)率,使注意力投入到更緊迫的地方。 特別是在Kaggle比賽中,我發(fā)現(xiàn)額外的RAM對于特征操作非常有用。 所以如果你資金充裕,并做了大量的預(yù)處理,那么額外的RAM可能是一個不錯的選擇。

?

硬盤驅(qū)動器/SSD

在某些情況下,硬盤驅(qū)動器可能是深度學(xué)習(xí)的重大瓶頸。 如果您的數(shù)據(jù)集很大,您通常會在SSD /硬盤驅(qū)動器上放一些數(shù)據(jù),RAM中也有一些,以及GPURAM中也會放兩個迷你批量(mini-batch)。 為了不斷地供給GPU,我們需要以GPU可以運行完的速度提供新的的迷你批量(mini-batch)。

?

為此,我們需要使用與異步迷你批量分配相同的想法。 我們需要異步讀取多個小批量的文件,這真的很重要! 如果我們不這樣做,結(jié)果表現(xiàn)會被削弱很多(約5-10%),并且你精心設(shè)計的硬件優(yōu)勢將毫無作用(好的深入學(xué)習(xí)軟件在GTX 680也能運行很快,而壞的深入學(xué)習(xí)軟件即使用GTX 980也會步履維艱)

?

考慮到這一點,如果我們將數(shù)據(jù)保存為32位浮點數(shù)據(jù),就會遇到Alex的ImageNet卷積網(wǎng)絡(luò)遇到的數(shù)據(jù)傳輸速率的問題,約每0.3秒0.085GB( ?)即290MB / s。 如果我們把它保存為jpeg數(shù)據(jù),我們可以將它壓縮5-15倍,將所需的讀取帶寬降低到約30MB / s。 如果我們看硬盤驅(qū)動器的速度,我們通常會看到速度為100-150MB / s,所以這對于壓縮為jpeg的數(shù)據(jù)是足夠的。?

類似地,一個人可以使用mp3或其他壓縮技術(shù)處理的聲音文件,但是對于處理原始32位浮點數(shù)據(jù)的其他數(shù)據(jù)組,難以很好地壓縮數(shù)據(jù)(只能壓縮32位浮點數(shù)據(jù)10-15%)。 所以如果你有大的32位數(shù)據(jù)組,那么你肯定需要一個SSD,因為速度為100-150 MB / s的硬盤會很慢,難以跟上GPU。

所以如果你今后有可能遇到這樣的數(shù)據(jù),那就買一個一個SSD;如果不會遇到那樣的數(shù)據(jù),一個硬盤驅(qū)動器就足夠用了。

?

?許多人購買SSD是為了感覺上更好:程序啟動和響應(yīng)更快,并且使用大文件進行預(yù)處理也更快一些。但是對于深入學(xué)習(xí),僅當(dāng)輸入維度很高且無法充分壓縮數(shù)據(jù)時,才用得到SSD。

?

如果您購買SSD,您應(yīng)該買一個能夠容納您常用大小的數(shù)據(jù)組的SSD,另外還需要額外留出幾十GB的空間。其實,讓硬盤驅(qū)動器來存儲未使用的數(shù)據(jù)組也是個好主意。

?

電源單元(PSU)

一般來說,您需要一個足夠的PSU來滿足未來的所有GPU。 GPU通常會隨著時間的推移而更加節(jié)能,所以即使當(dāng)其他組件到了更換的時候,PSU也能繼續(xù)工作很長時間,所以良好的PSU是一個明智的投資。

?

您可以通過將CPU和GPU的所需瓦數(shù),與其他組件所需瓦數(shù)相加,再加上作為電源峰值緩沖的100-300瓦,就能計算出所需的瓦數(shù)。?

?

要注意的一個重要部分,是留意您的PSU的PCIe連接器是否支持帶有連接線的8pin + 6pin的接頭。 我買了一個具有6x PCIe端口的PSU,但是只能為8pin或6pin連接器供電,所以我無法使用該PSU運行4個GPU。

?

另一個重要的事情是購買具有高功率效率等級的PSU,特別是當(dāng)您運行多個GPU并想要運行很長時間。

??

在全功率(1000-1500瓦特)下運行4個GPU系統(tǒng),對卷積網(wǎng)進行兩個星期的訓(xùn)練,將消耗300-500千瓦時,而在德國的電力成本還要高出20美分/ kWh,即60~100

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4571.html

相關(guān)文章

  • EOS入門指南PART4——合約開發(fā)鋪墊:搭建本地測試節(jié)點

    摘要:在此之前,我們要為此做一些準(zhǔn)備工作搭建本地測試節(jié)點,方便以后編寫和部署合約。摘要這篇,我們將簡單學(xué)習(xí)如何搭建本地測試節(jié)點大家就不要花錢去買了,以及如何使用超級賬戶創(chuàng)建新賬戶以及加載基礎(chǔ)的系統(tǒng)合約??梢哉f,擁有了這個賬戶,就擁有了整個測試網(wǎng)絡(luò) 之前三篇我們掌握了如何使用EOS源碼搭建環(huán)境、連接主網(wǎng)以及如何創(chuàng)建賬戶。自此,我們對EOS就有了一個感性的認(rèn)知,對EOS中公鑰、賬戶以及權(quán)限有了新...

    aervon 評論0 收藏0
  • 計算機視覺中深度學(xué)習(xí):技術(shù)、市場和5個你想不到未來

    摘要:接下來,介紹了使用深度學(xué)習(xí)的計算機視覺系統(tǒng)在農(nóng)業(yè)零售業(yè)服裝量身定制廣告制造等產(chǎn)業(yè)中的應(yīng)用和趨勢,以及在這些產(chǎn)業(yè)中值得關(guān)注的企業(yè)。 嵌入式視覺聯(lián)盟主編Brian Dipert今天發(fā)布博文,介紹了2016年嵌入式視覺峰會(Embedded Vision Summit)中有關(guān)深度學(xué)習(xí)的內(nèi)容:谷歌工程師Pete Warden介紹如何利用TensorFlow框架,開發(fā)為Google Translate...

    baukh789 評論0 收藏0
  • 是時候考慮那些沒名氣數(shù)據(jù)中心硬件

    摘要:然而目前的問題是,光互連硬件的成本隨著其功能的增加而增加,并且其增長快于其他數(shù)據(jù)中心硬件的成本。如今,維護和升級數(shù)據(jù)中心硬件是一項優(yōu)化工作。對于管理數(shù)據(jù)中心硬件的工作人員來說,這一點很重要數(shù)據(jù)需求將會持續(xù)增長。對于許多企業(yè)的數(shù)據(jù)中心團隊來說,所面臨困難的現(xiàn)實是需要支持更多的商業(yè)級應(yīng)用:提高業(yè)務(wù)敏捷性,實現(xiàn)基礎(chǔ)設(shè)施的現(xiàn)代化以提高能源效率,加強網(wǎng)絡(luò)安全等等。與此同時,即使面臨明確長期節(jié)省成本和業(yè)...

    BoYang 評論0 收藏0
  • 深度學(xué)習(xí)三大硬件+四大學(xué)習(xí)庫基準(zhǔn)測試對比,指標(biāo)全面呈現(xiàn)

    摘要:基準(zhǔn)測試我們比較了和三款,使用的深度學(xué)習(xí)庫是和,深度學(xué)習(xí)網(wǎng)絡(luò)是和。深度學(xué)習(xí)庫基準(zhǔn)測試同樣,所有基準(zhǔn)測試都使用位系統(tǒng),每個結(jié)果是次迭代計算的平均時間。 購買用于運行深度學(xué)習(xí)算法的硬件時,我們常常找不到任何有用的基準(zhǔn),的選擇是買一個GPU然后用它來測試?,F(xiàn)在市面上性能較好的GPU幾乎都來自英偉達,但其中也有很多選擇:是買一個新出的TITAN X Pascal還是便宜些的TITAN X Maxwe...

    YacaToy 評論0 收藏0
  • 硬件配置到軟件安裝,一臺深度學(xué)習(xí)機器配備指南

    摘要:很明顯這臺機器受到了英偉達的部分啟發(fā)至少機箱是這樣,但價格差不多只有的一半。這篇個文章將幫助你安裝英偉達驅(qū)動,以及我青睞的一些深度學(xué)習(xí)工具與庫。 本文作者 Roelof Pieters 是瑞典皇家理工學(xué)院 Institute of Technology & Consultant for Graph-Technologies 研究深度學(xué)習(xí)的一位在讀博士,他同時也運營著自己的面向客戶的深度學(xué)習(xí)產(chǎn)...

    joywek 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<