• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向理想性能空間的跨架構(gòu)編譯分析方法

    2021-04-01 01:19:32賴慶寬賀春林何先波馮曉兵
    計算機(jī)研究與發(fā)展 2021年3期
    關(guān)鍵詞:編譯器選項峰值

    賴慶寬 呂 方 賀春林 何先波 馮曉兵,3

    1(計算機(jī)體系結(jié)構(gòu)國家重點實驗室(中國科學(xué)院計算技術(shù)研究所) 北京 100190) 2(中國科學(xué)院計算技術(shù)研究所 北京 100190) 3(中國科學(xué)院大學(xué) 北京 100049) 4(西華師范大學(xué)計算機(jī)學(xué)院 四川南充 637009)

    (laiqingkuan@outlook.com)

    編譯器性能優(yōu)化是計算機(jī)系統(tǒng)結(jié)構(gòu)優(yōu)勢得以充分發(fā)揮的基礎(chǔ),是關(guān)乎整個系統(tǒng)功能與性能的重要環(huán)節(jié).編譯器優(yōu)化的實質(zhì)是“取眾人之長,補己之短”.一款高性能編譯器需要汲取其他諸多編譯器的長處,它的優(yōu)化契機(jī)和提升空間也往往源于對同期編譯器的優(yōu)勢挖掘.但是,面對眾多同期編譯器設(shè)計,選擇哪些作為參照物分析才能攫取更多收益是編譯器優(yōu)化分析最為關(guān)注的問題.

    Fig. 1 Interference with compiler performance by different platforms (processors)圖1 不同平臺(處理器)對編譯器性能的干擾作用

    編譯器性能直接受平臺影響,因此,對它們進(jìn)行性能分析時,不僅需要考慮編譯器自身的性能優(yōu)勢,也不能忽視平臺所產(chǎn)生的影響.圖1展示了同期版本的icc和aocc編譯器在Intel平臺以及基于海光處理器的驗證平臺(Hygon)上表現(xiàn)出截然相反的性能表現(xiàn).以SPEC CPU2017定點測試集為例,圖1(a)中的2組曲線分別代表Intel服務(wù)器本地安裝的2款編譯器icc編譯器(iccIntel)和aocc編譯器(aoccIntel)所產(chǎn)生的SPEC CPU2017定點性能對比數(shù)據(jù).標(biāo)記菱形的曲線所代表的iccIntel在Intel服務(wù)器上呈現(xiàn)出明顯“主場實力”,在SPEC CPU2017定點幾何平均分值(INT_GEOM)上與標(biāo)記方形的曲線所代表的aoccIntel的差值將近7%;然而在圖1(b)中,海光平臺上的2款本地編譯器的性能與Intel平臺上的編譯器性能剛好相反,其中aocc編譯器的性能相對于icc編譯器性能更好,超過icc編譯器10%.如圖中選定的625.x264_s例子,在Intel平臺上icc性能最好,在Hygon平臺上aocc性能最好.根據(jù)以上的數(shù)據(jù)分析,不同的平臺上相同的編譯器優(yōu)化能力不同,機(jī)器平臺是影響編譯器性能的關(guān)鍵因素.

    平臺影響從編譯器安裝伊始就開始了,它決定了平臺之上的編譯器具有啟發(fā)式的優(yōu)化能力.當(dāng)平臺(處理器)不同時,相同的編譯器源碼在安裝過程中會受到不同指引,繼而生成具有不同優(yōu)化能力的本地編譯器.例如,對于同一份gcc8.2.0源代碼,它在Intel、Hygon和龍芯上所生成的編譯器具有不同的優(yōu)化能力.在編譯器安裝過程中,機(jī)器平臺的影響的不可忽略,否則會影響后續(xù)的優(yōu)化方案的確定.因此,跨平臺編譯器性能分析的基礎(chǔ)應(yīng)該是編譯器與機(jī)器平臺的組合,本文稱之為架構(gòu)組合.

    然而,結(jié)合平臺的編譯器分析將產(chǎn)生巨大的數(shù)據(jù)量.編譯器分析又是一個極大依賴于編譯專家經(jīng)驗的過程,由于數(shù)據(jù)過多必定會大大增加人工分析的工作量,所以目前編譯器性能分析過程中,會忽略機(jī)器平臺(處理器特征)的影響,僅僅關(guān)注于編譯器本身.目前的編譯器性能分析方法只選定一款高性能編譯器來做分析,以降低分析壓力.工業(yè)屆主流芯片服務(wù)器廠商都研發(fā)了只適合于自家芯片和服務(wù)器的高性能編譯器.如icc是Intel公司高性能編譯器,aocc是AMD公司的高性能編譯器,這些編譯器在各自的芯片服務(wù)器上擁有著非常顯著的性能,所以是編譯器性能分析的最佳參照編譯器.但是這些編譯器并不能一成不變的普適風(fēng)云萬變的領(lǐng)域體系結(jié)構(gòu).這些編譯器脫離自己所定位的芯片結(jié)構(gòu),是否仍然能夠發(fā)揮出“主場效應(yīng)”?顯然,當(dāng)目標(biāo)編譯器所在平臺與icc,aocc不同時,這個問題就關(guān)系到優(yōu)勢編譯器選型是否正確,更關(guān)乎目標(biāo)編譯器優(yōu)化分析的優(yōu)化方向決策是否正確.對于編譯器優(yōu)化而言,減少分析目標(biāo),就會大大削弱了集眾長于一身的機(jī)會.因此,我們需要一種高效的分析方法,此方法可以快速地選擇出性能高的架構(gòu)組合,精確地預(yù)估出最大化的理想性能提升空間.根據(jù)這些性能數(shù)據(jù)指標(biāo)實行詳細(xì)的分析,以確定出優(yōu)勢優(yōu)化選項,并在目標(biāo)編譯器上實現(xiàn)此優(yōu)化功能.

    本文提出了一種與機(jī)器平臺相關(guān)的編譯器性能分析技術(shù)——基于峰值數(shù)據(jù)的跨架構(gòu)組合分析方法(a peak-data based approach for cross-framework compiler analysis, PDCA),此方法可應(yīng)用于多平臺上的多編譯器性能分析.首先,以SPEC CPU2017為測試用例,根據(jù)業(yè)界提供的峰值選項對平臺和編譯器的架構(gòu)組合做峰值測試,用最高的性能數(shù)據(jù)建立理想峰值性能,其與我們的目標(biāo)編譯器性能差距構(gòu)建出一個理想性能區(qū)間(ideal-peak).此性能區(qū)間是目標(biāo)編譯器在理想情況下可以達(dá)到的性能.其次,選項篩選,直至獲得有明顯性能優(yōu)勢的優(yōu)化措施指示,通過人工分析,在目標(biāo)編譯器中實現(xiàn)性能提升,PDCA是使得目標(biāo)編譯器的優(yōu)化來源于其他多個架構(gòu)組合,最終性能逼近理想性能.

    本文主要貢獻(xiàn)有3個方面:

    1) 提出一種跨架構(gòu)分析方法PDCA,該方法是對多平臺和多編譯器架構(gòu)組合的編譯器優(yōu)化分析方法.

    2) 該方法是針對多個優(yōu)勢峰值架構(gòu)組合,以理性性能區(qū)間為目標(biāo)的編譯器性能分析方法,最高的性能數(shù)據(jù)和目標(biāo)編譯器性能數(shù)據(jù)之間的差距構(gòu)成了理想性能區(qū)間,它代表了一個切實可以提升的性能空間.因此,是一種具有實用價值的分析方法.

    3) 通過實驗驗證,PDCA是一種高效使用的編譯器性能分析方法,可以以多個架構(gòu)為參照,為目標(biāo)編譯器挖掘出更多的優(yōu)化技術(shù)方案,使得目標(biāo)編譯器獲得巨大的性能提升.

    1 研究背景

    1.1 問 題

    現(xiàn)有編譯器性能分析方法通常采用弱化架構(gòu)組合選型的方式進(jìn)行,即簡化平臺與編譯器選型,直接鎖定某一種優(yōu)勢架構(gòu)組合.例如安騰處理器平臺上的ORC編譯器是以同期的商用編譯器ecc作為參照編譯器而研發(fā)的.基于mips架構(gòu)的龍芯編譯器也將同期x86與icc編譯器作為自己的參照分析物.在此基礎(chǔ)上采用機(jī)器模型輔助等自動分析手段對編譯器優(yōu)化進(jìn)行深度篩選[1],目的是迅速聚集到使性能最大化的優(yōu)化選項.

    如果只對單一的架構(gòu)組合做性能分析,那么編譯器的性能提升控制將受到很大的限制.編譯器性能分析通常借助于SPEC CPU2017測試集[2],此測試集包含的領(lǐng)域非常廣泛,包括壓縮算法、地震模型等,并且對于每個測試用例存在定點和浮點數(shù)據(jù)集以及條件密集或訪存密集等不同特征. 因此,一個架構(gòu)組合很難使SPEC CPU2017測試集中的所有類型應(yīng)用百分百受益.

    如圖2所示,gcc編譯器在Intel平臺上有極大的性能提升空間.如圖2(a)所示,icc有明顯的優(yōu)勢,2種編譯器之間有84%的性能差,這也是我們參照icc進(jìn)行優(yōu)化所能達(dá)到的可能最大提升限度.圖2(b)中,如果在這個基礎(chǔ)上增加aocc,依舊是這5個測試用例具有非常大的性能差距,但它們分別來源于icc和aocc.此時,平均性能若涵蓋標(biāo)記空心方形所示的最好性能數(shù)據(jù),它較gcc基準(zhǔn)的優(yōu)勢就會提升至107%.由此可見,參照編譯器的擴(kuò)充將帶來更大的潛在性能提升空間.如果據(jù)此性能區(qū)間的指引,目標(biāo)編譯器gcc可獲得更多性能提升.

    Fig. 2 Performance ratio based on icc and aocc圖2 以icc和aocc為參考形成的性能差

    然而,弱化架構(gòu)組合選型的主因之一是無法承受跨架構(gòu)組合所引發(fā)的龐大的人工分析開銷.式(1)對跨架構(gòu)編譯器分析的時間成本進(jìn)行了估算.

    overheads=(platforms×compilers×options×
    benchmarks×runtime)24.

    (1)

    結(jié)合平臺因素的編譯器分析需要在平臺(platforms)、編譯器(compilers)以及性能分析選項(options)、測試集(benchmarks)和測試時間(runtime)之間建立關(guān)系.

    其中,性能分析選項往往是引爆機(jī)器學(xué)習(xí)搜索空間的主因,因為通用編譯器的優(yōu)化模塊多達(dá)數(shù)百種[4],由此衍生出的性能分析的時間成本和復(fù)雜度是難以估量.以圖2(a)為例,在Intel平臺上對gcc和icc這2種編譯器的4種常用優(yōu)化選項O2、O3、內(nèi)聯(lián)、插裝profiling分析,至少需要16(即24)組實驗,在SPEC CPU2017測試用例上每組實驗至少12 h,因此至少需要16 d才能完成實驗.如果增加1個待分析的架構(gòu)aoccHygon,實驗會延長至24 d,數(shù)據(jù)會膨脹至960個,對于人工分析來說基本是很難完成的.因而編譯器性能分析會陷入到選擇架構(gòu)組合的困難,那么弱化架構(gòu)選擇成為了現(xiàn)在主流的編譯器心梗分析方法.

    因此,為適度拓展性能分析覆蓋的應(yīng)用類型,我們需要適度擴(kuò)張架構(gòu)組合的選型集合,它在可能接受的人工開銷范圍內(nèi),聚集了更多有價值的優(yōu)勢架構(gòu)組合,從而有利于我們實施更精準(zhǔn)的性能分析,使目標(biāo)編譯器受益.

    1.2 挑 戰(zhàn)

    多種平臺、多種編譯器所形成的架構(gòu)組合會帶來急劇膨脹的數(shù)據(jù)量,應(yīng)用性能表現(xiàn)各異,在現(xiàn)有技術(shù)下,基于架構(gòu)組合的性能分析很難開啟.

    然而,我們從實驗數(shù)據(jù)中發(fā)現(xiàn)了一些契機(jī).如圖2所示,對于607.cactuBSSN_s例子,它最好的性能來自于aoccIntel,而對于619.lbm_s例子,它最好的數(shù)據(jù)形成于iccIntel.對于我們優(yōu)化的目標(biāo)gcc而言,理想的性能提升空間是在同一個X86平臺上,目標(biāo)編譯器和其他編譯器的峰值數(shù)據(jù)之間的差距,此區(qū)間值越大,目標(biāo)編譯器的提升空間就越高.所以可以為目標(biāo)編譯器借鑒其他編譯器的優(yōu)化技術(shù),把目標(biāo)編譯器的性能提升至同一平臺上的峰值數(shù)據(jù),因此,面向理想性能空間的分析技術(shù)是可行的,且可以實施的.

    實際上,目標(biāo)編譯器優(yōu)化的現(xiàn)實目的是盡可能把優(yōu)勢優(yōu)化技術(shù)納入自身,而不在意這個技術(shù)是哪個架構(gòu)組合產(chǎn)生的.因此,我們將眼光從單一優(yōu)勢編譯器選型轉(zhuǎn)移到性能分析用例的峰值數(shù)據(jù)所產(chǎn)生的架構(gòu)組合上,重點研究它們的成因.首先,借助于已有峰值研究成果,我們對架構(gòu)組合的峰值數(shù)據(jù)進(jìn)行一次摸底測試,將不同架構(gòu)組合的峰值匯聚到目標(biāo)平臺上,與目標(biāo)編譯器性能形成可以比較的集合.此時,所有測試用例的最高性能數(shù)據(jù)形成一個峰值數(shù)據(jù)集合,它們與目標(biāo)編譯器的性能差就構(gòu)成了一個理想情況下最大化的性能提升空間,即理想優(yōu)化空間,這個優(yōu)化空間通常會超越icc等單一編譯器所帶來的性能提升空間.此時,性能分析不需要對所有架構(gòu)進(jìn)行繁瑣的排列組合實驗,僅僅需要從單一用例入手,對產(chǎn)生該數(shù)據(jù)的峰值選項進(jìn)行細(xì)化分析,從而精準(zhǔn)定位出決定其性能優(yōu)勢的優(yōu)化技術(shù),而分析的結(jié)論可以推廣適用于同類用例中.這種在理想性能提升空間指引下的分析更具實用意義.它大大縮減了機(jī)器學(xué)習(xí)等輔助手段所進(jìn)行的繁瑣的選項分析過程,明確地以峰值性能為目的,其性能分析以及提升收益也更為明確,是具有實際應(yīng)用價值的分析方法.這是本文所述面向理想性能空間的跨架構(gòu)編譯分析技術(shù)的基本思想.

    1.3 方 法

    面向理想性能空間的跨編譯器分析技術(shù)PDCA是一種面向跨平臺、跨編譯器所構(gòu)成的復(fù)雜場景下的編譯分析和優(yōu)化技術(shù).它包括3個核心步驟:理想性能空間構(gòu)建、細(xì)粒度優(yōu)勢優(yōu)化定位、優(yōu)化建議與實施.

    圖3展示了PDCA的主要思路,包括3個主要步驟.

    1) 理想性能空間構(gòu)建.圖3中采用了Intel和gcc構(gòu)成目標(biāo)架構(gòu).選取了Intel和Hygon為待分析的平臺,分別選取{gcc,icc,aocc}3種編譯器作為參照編譯器,在它們形成的架構(gòu)組合上對SPEC CPU2017測試集進(jìn)行性能測試與分析.表1中列舉了平臺、編譯器以及SPEC CPU2017的關(guān)鍵信息.在理想性能空間構(gòu)建過程中,在每個平臺上,采用峰值選項對SPEC CPU2017進(jìn)行動態(tài)編譯,并將可執(zhí)行碼均匯集到目標(biāo)平臺上,進(jìn)行性能測試.最終,形成圖3①中的性能加速比分析曲線,此時,目標(biāo)平臺上匯集了3個架構(gòu)組合產(chǎn)生的性能數(shù)據(jù)曲線.對于607.cactuBSSN_s而言,其最好性能來自aoccIntel,而619.lbm_s的最好性能來自iccIntel,即Intel平臺上的icc編譯器.如圖3①中標(biāo)記方形的標(biāo)注,SPEC CPU2017的每一個用例的最好性能共同形成了理想峰值數(shù)據(jù)集,而它們的平均值與基準(zhǔn)的gcc性能構(gòu)成了一個理想性能空間,它優(yōu)于單一的icc或者aocc帶來的性能差.

    Fig. 3 A example of cross-architectural analysis techniques for the ideal performance space圖3 面向理想性能空間的跨架構(gòu)分析技術(shù)例子

    Table 1 PlatformInformation and Peak Optimization Options表1 平臺信息及編譯器峰值優(yōu)化選項

    2) 細(xì)粒優(yōu)勢優(yōu)化定位.如圖3②所示,在挖掘出產(chǎn)生峰值性能數(shù)據(jù)的架構(gòu)后,在每一個峰值架構(gòu)上,就可以采用成熟的機(jī)器學(xué)習(xí)等方法,僅僅在峰值選項范圍內(nèi)進(jìn)行優(yōu)化選項分析,直至分析出具有明顯性能優(yōu)勢的優(yōu)化技術(shù).圖3③中,619.lbm_s經(jīng)過對常用峰值優(yōu)化選項的有限次迭代測試,最后確定預(yù)取優(yōu)化(prefetch)是非常重要的手段.到此,機(jī)器輔助的分析就結(jié)束了.

    2 面向理想性能空間的跨架構(gòu)編譯分析方法

    面向理想性能空間的跨架構(gòu)編譯分析技術(shù)是在跨平臺、跨編譯器的復(fù)雜場景下,獲得更大性能提升的一種實用型性能分析技術(shù).它將不同架構(gòu)下用峰值選項形成的動態(tài)可執(zhí)行碼匯聚到目標(biāo)平臺上實施性能對比,借此形成一個峰值性能數(shù)據(jù)集.峰值性能數(shù)據(jù)與目標(biāo)編譯器之間就形成了一個理想情況下可以達(dá)到的最大性能提升空間,以它作為后續(xù)性能優(yōu)化的目標(biāo).針對這個有限集合,PDCA對每個用例的峰值架構(gòu)的選項進(jìn)行深入分析,準(zhǔn)確定位出帶明顯性能變化的優(yōu)勢優(yōu)化技術(shù),并指導(dǎo)目標(biāo)編譯器設(shè)計實現(xiàn).

    Fig. 4 Cross-architectural analysis techniques for the ideal performance space圖4 面向理想性能空間的跨架構(gòu)分析技術(shù)

    圖4展示了面向理想性能空間的跨架構(gòu)編譯分析技術(shù)的主要架構(gòu),它包括理想性能空間構(gòu)建、細(xì)粒度優(yōu)勢優(yōu)化定位、優(yōu)化建議與實施3個主要模塊.首先PDCA構(gòu)建一個理想情況下,目標(biāo)編譯器能獲取的理想性能提升空間.它借鑒業(yè)界發(fā)布的峰值數(shù)據(jù),將候選平臺和候選編譯器所形成的架構(gòu)組合形成的用例匯集到目標(biāo)平臺上進(jìn)行性能測試.在此過程中,由每一個測試用例最好的性能組成了理想峰值數(shù)據(jù)集,平均的理想峰值數(shù)據(jù)與目標(biāo)編譯器性能之間的差距形成了理想性能空間,這是后續(xù)優(yōu)化提升的依據(jù).每一個峰值數(shù)據(jù)對應(yīng)的架構(gòu)構(gòu)成一個峰值架構(gòu)組合.其次,在細(xì)粒度優(yōu)勢優(yōu)化定位過程中,針對每一種峰值架構(gòu),在限定的選項范圍內(nèi),即峰值選項范圍內(nèi)進(jìn)行機(jī)器學(xué)習(xí)自動選項分析,輔以VTune等性能分析工具,明確引發(fā)性能差異的主要優(yōu)化手段;最后,經(jīng)過人工分析,明確優(yōu)化方式,線性比對熱點區(qū)域代碼的中間表示指令(intermediate representation, IR),并仿照參照編譯器的設(shè)計實施到目標(biāo)編譯器中.經(jīng)過上述3個步驟,目標(biāo)編譯器可以獲得最終性能提升.

    PDCA是一種實用型分析技術(shù),它在一個理想性能空間的指引下,對峰值選項進(jìn)行分析.這種方式不僅大大減少了分析的工作量,還可以對目標(biāo)編譯器的最終受益效果更加明確.在理想性能空間的指引下,將分析結(jié)論和設(shè)計方案逐步實施在目標(biāo)編譯器中,使其真正獲益,繼而縮小目標(biāo)編譯器與峰值性能數(shù)據(jù)之間的差距.

    2.1 理想性能空間構(gòu)建

    構(gòu)建理想性能空間需要擴(kuò)大待分析的架構(gòu)組合數(shù)量,為目標(biāo)編譯器提供盡可能多的提升機(jī)會.如圖4(a)所示,首先明確選擇出待分析的平臺和待分析的編譯器組合,在每個平臺上根據(jù)峰值選項使用每個編譯器對SPEC CPU2017測試集編譯出動態(tài)可執(zhí)行碼.然后將所有的動態(tài)可執(zhí)行碼集中于目標(biāo)平臺上運行測試.這樣,無須考慮外圍庫的干擾,不同架構(gòu)組合下的可執(zhí)行碼的性能差距可以近似地認(rèn)為是由編譯器優(yōu)化能力所致,在后面的分析過程中,只需僅僅關(guān)注編譯器本身即可.

    跨平臺測試完之后,在目標(biāo)平臺上會產(chǎn)生多組性能數(shù)據(jù).對于每個測試用例均選取最高的性能,即可構(gòu)成峰值架構(gòu)集合,此峰值架構(gòu)集合最終的性能與目標(biāo)編譯器構(gòu)成理想性能空間(idea-peak).一般來說,PDCA所關(guān)注的編譯器越多,理想性能空間就越大,目標(biāo)編譯器多能汲取的優(yōu)化經(jīng)驗也越為廣泛.

    需要說明的是,在這個過程中,在某個編譯器中的峰值選項可能與其他編譯器選項不同,我們會在其他編譯器上對該選項做性能測試,將能夠呈現(xiàn)優(yōu)勢的選項補充到其他編譯器的峰值選項中.但是我們的目標(biāo)是為目標(biāo)編譯器優(yōu)化提供最大的優(yōu)化空間,并不是尋找最佳的優(yōu)化選項組合,所以峰值選項進(jìn)一步地改進(jìn)不在本文討論范疇中.

    2.2 細(xì)粒度優(yōu)勢優(yōu)化定位

    編譯器性能分析首先需要明確性能差距的原因,即優(yōu)勢優(yōu)化選項.通常我們對峰值選項做有限次的迭代測試,確定優(yōu)勢優(yōu)化選項的大致方向;然后分析由諸多優(yōu)化交疊作用后、歷經(jīng)重重演變的應(yīng)用程序中間代碼,例如llvm的中間表示IR,或者匯編碼.這些中間代碼有時甚至是經(jīng)過代碼膨脹數(shù)倍.人工需要在眾多優(yōu)化選項中進(jìn)行排除并進(jìn)行驗證.這個過程耗時耗力,并且十分低效.為了降低分析難度,有很多機(jī)器學(xué)習(xí)的相關(guān)研究用于分析優(yōu)化選項的作用[5];一些分析工具還可以幫助定位代碼的熱點函數(shù)、熱點區(qū)域[6].因此,我們將這些方法結(jié)合在PDCA中,使它更加實用.

    對于每一個峰值架構(gòu),我們可以采用成熟的機(jī)器學(xué)習(xí)的方法繼續(xù)輔助分析,從而圈定更有分析價值的選項范圍(優(yōu)勢選項)以及它所影響的代碼范圍.這里,由于峰值選項是最直接帶來優(yōu)化效果的組合,因此,具有明顯優(yōu)化效果的技術(shù)一定藏于其中.因此,PDCA將分析目標(biāo)圈定在峰值選項范圍內(nèi),大大降低了分析的時間開銷.在明確出優(yōu)勢選項后,用VTune和gprof等工具輔助,我們最終可以將優(yōu)勢選項以及它所影響的代碼范圍圈定在很小的區(qū)域內(nèi),有利于人工分析.

    2.3 優(yōu)化建議與實施

    在自動分析結(jié)束后,待分析的代碼區(qū)域相對較小,需要進(jìn)行人工分析,我們稱之為“最后一步”.這個過程高度依賴于編譯器設(shè)計人員的專業(yè)經(jīng)驗,對來自目標(biāo)編譯器以及峰值架構(gòu)的中間代碼區(qū)域(IR)進(jìn)行線性對比,確定區(qū)域中存在的差異,依賴經(jīng)驗推測出2個編譯器在優(yōu)化上的不同原因.通過對目標(biāo)編譯器的相關(guān)優(yōu)化模塊進(jìn)行深入了解,仿照峰值架構(gòu)進(jìn)行改進(jìn)優(yōu)化,從而獲得一定性能提升,盡量縮小理想性能空間.現(xiàn)今,研究領(lǐng)域尚欠缺成熟的自動工具來替代這一步,因此,這一步也成為編譯器性能分析中難度最大的環(huán)節(jié),編譯器設(shè)計人員的經(jīng)驗決定了優(yōu)化分析的時間開銷.我們接下來的研究將針對“最后一步”問題展開研究.

    3 實驗與分析

    PDCA一種面向由多平臺、多編譯器構(gòu)成的復(fù)雜場景下的編譯分析技術(shù).本節(jié),我們將PDCA應(yīng)用在Intel和Hygon平臺上,并圍繞2個問題進(jìn)行探索:

    1) 在多平臺、多編譯器的復(fù)雜場景下,PDCA是否可以給目標(biāo)編譯器更大的性能提升空間,即PDCA是否具有實用價值.

    2) PDCA是否足夠精準(zhǔn),即它所快速定位出的優(yōu)勢優(yōu)化是否可以帶來實際性能提升.

    Fig. 5 Peak testing on the Intel platform with gcc as the benchmark圖5 Intel平臺上以gcc為基準(zhǔn)的峰值的測試

    針對問題1,我們將PDCA應(yīng)用在Intel和Hygon兩個平臺上,并選擇4個代表性編譯器gcc,icc,aocc,llvm作為候選編譯器,它們最終形成表1所列的8個候選架構(gòu)組合.其中,以Intel平臺為例,compilerIntel是指在Intel機(jī)器平臺上編譯并運行,compilerHygon是指在Hygon機(jī)器平臺上編譯后經(jīng)跨平臺匯集到Intel平臺上執(zhí)行的動態(tài)可執(zhí)行碼.峰值選項經(jīng)參考SPEC CPU2017官網(wǎng)和測試用例的基本特征而形成[7].一些編譯器的峰值選項具有特有選項,我們會在其他編譯器中嘗試運行,將會帶來性能提升的選項補充到其他編譯器中.總的來說,不同峰值選項均包括了O3、內(nèi)聯(lián)、循環(huán)優(yōu)化、鏈接時優(yōu)化、高效內(nèi)存管理庫等主要優(yōu)化手段.通過將8組架構(gòu)的峰值數(shù)據(jù)匯集在目標(biāo)平臺Intel上,用以判斷PDCA技術(shù)是否比單一icc帶來更大的性能分析空間;同理,我們在Hygon上對來自上述8個候選架構(gòu)的組合進(jìn)行對比分析,用以判斷PDCA是否具有一定普適效果.針對問題2,我們將PDCA施用于峰值架構(gòu)上,并完成細(xì)粒度分析,生成優(yōu)化建議.通過優(yōu)化實施效果來展示PDCA在分析指導(dǎo)方面的精準(zhǔn)性.

    3.1 理想性能空間

    3.1.1 以Intel平臺gcc為目標(biāo)編譯器

    gcc是使用范圍最廣的通用編譯器之一,它具有卓越的健壯性,然而在性能上與商用編譯器之間存在一定的差距,有很大的優(yōu)化空間.在Intel平臺上以gcc為優(yōu)化目標(biāo)編譯器,采用常用的性能加速比來進(jìn)行2款編譯器的性能對比.如式(2)所示,以目標(biāo)編譯器架構(gòu)(gccIntel)為基準(zhǔn),其他編譯器架構(gòu)(compilerplatform)的性能與之對比,即可算得性能加速比(speedup):

    (2)

    Fig. 6 Peak testing on the Hygon platform with llvm as the benchmark圖6 Hygon平臺上以llvm為基準(zhǔn)的峰值測試

    我們在Intel和Hygon上,采用表1所列各個編譯器分別對應(yīng)的峰值選項對SPEC CPU2017定點和浮點20個測試用例分別進(jìn)行編譯,形成8組動態(tài)鏈接可執(zhí)行碼,并將其放入目標(biāo)平臺Intel上執(zhí)行,依據(jù)各個用例最好的性能數(shù)據(jù)來建立理想性能區(qū)間以及峰值架構(gòu)集合.在這個過程中,由于每組代碼都是動態(tài)連接,在執(zhí)行過程中會使用本地編譯器相同的庫代碼,因此,SPEC CPU2017性能差異主要體現(xiàn)在編譯器自身優(yōu)化能力上.圖5列舉了Intel上定點和浮點集合所產(chǎn)生的8組架構(gòu)組合的性能曲線.在圖5(a)中,iccIntel的性能比基準(zhǔn)gccIntel的性能高出10%,在整個定點測試用例中,峰值架構(gòu)并不是僅僅來源于單一的icc編譯器,從圖5可以發(fā)現(xiàn)在不同應(yīng)用上其他架構(gòu)組合也表現(xiàn)不出,如648.exchange2_s的峰值架構(gòu)是aoccIntel,并不是icc編譯器.對以上所有的定點測試用例選擇峰值架構(gòu),即有17%的理想性能空間.同理,如圖5(b)中的浮點數(shù)據(jù)曲線一樣,雖然icc針對浮點用例的優(yōu)化是具有一定優(yōu)勢,但理想性能空間不僅僅來源于icc,還來源于其他的峰值架構(gòu),如607.cactuBSSN_s,它最好的性能來自于aoccIntel.最終對浮點測試用例選擇最好的峰值架構(gòu),即有63%的理想性能空間.

    3.1.2 以Hygon平臺llvm為目標(biāo)編譯器

    為了說明PDCA跨架構(gòu)分析的必要性以及可行性,我們將PDCA布局在Hygon上,并選擇了另外一款主流編譯器llvm(llvmHygon)[8].隨著芯片的飛速發(fā)展及多元化,llvm所具有的小巧、易組合等特點使它成為研究領(lǐng)域以及AI等芯片設(shè)計公司首選的編譯器工具之一.本節(jié)的實驗也有助于評估llvm的性能.同3.1.1節(jié)實驗一樣,我們在Intel和Hygon上采用表1的峰值選項對SPEC CPU2017定點和浮點分別編譯,形成8組動態(tài)鏈接執(zhí)行碼,并將其放入到目標(biāo)平臺Hygon上執(zhí)行.圖6是Hygon平臺上定點和浮點所產(chǎn)生的8組架構(gòu)組合的性能數(shù)據(jù)曲線.圖6(a)數(shù)據(jù)表明,峰值數(shù)據(jù)不僅僅來源于aoccHygon架構(gòu),還來源于gccIntel架構(gòu),并且理想性能達(dá)到30%.圖6(b)中所有的峰值數(shù)據(jù)均來自于Intel平臺上編譯的可執(zhí)行碼,多數(shù)峰值數(shù)據(jù)來自于標(biāo)記三角形的曲線代表iccIntel架構(gòu),結(jié)合gccHygon架構(gòu)所產(chǎn)生的峰值數(shù)據(jù),理想性能空間高達(dá)42%,說明在Intel機(jī)器上icc編譯器編譯的可執(zhí)行碼性能突出,是非常可值得作為目標(biāo)平臺上目標(biāo)編譯器優(yōu)化的參考.

    3.1.3 小結(jié)

    采用PDCA對Intel和Hygon上編譯器進(jìn)行全面的對比分析.如圖7所示,在同一個平臺上,理想性能區(qū)間很難由一個架構(gòu)組合覆蓋;在不同平臺上,同一種編譯器的性能優(yōu)化能力也不盡相同.因此,PDCA提供了一種實用分析技術(shù),可以在擴(kuò)張的架構(gòu)組合的基礎(chǔ)上進(jìn)行更大范圍的分析,從而使跨平臺跨編譯器構(gòu)成的復(fù)雜場景下的編譯分析成為可能,使得目標(biāo)編譯器有更大的性能提升可能.

    Fig. 7 Peak architecture set on the Intel and Hygon platform圖7 Intel和Hygon平臺峰值架構(gòu)集

    Fig. 8 Advantage optimization options on the Intel platform圖8 Intel平臺上優(yōu)勢優(yōu)化選項

    3.2 細(xì)粒度性能分析以及優(yōu)化指導(dǎo)

    圖7展示的是SPEC CPU2017定點和浮點測試用例在Intel和Hygon平臺上的峰值架構(gòu)組合.根據(jù)以上的呈現(xiàn)的峰值架構(gòu),選定性能差距最大且最有可能優(yōu)化的測試用例,如Intel平臺上的619.lbm_s,625.x264_s和638.imagick_s等用例.然后對以上的具體測試用例根據(jù)峰值優(yōu)化選項做有限次地迭代測試,可以明確出優(yōu)化方向,即優(yōu)勢優(yōu)化選項.

    如圖8所示,我們在Intel平臺上選擇了峰值架構(gòu)性能比目標(biāo)編譯器gcc性能差距更大的測試用例,對選定的測試用例做仔細(xì)地分析,可以明確出優(yōu)勢優(yōu)化選項.首先,以峰值選項全部關(guān)閉為基準(zhǔn)數(shù)據(jù),然后只打開某一重要峰值選項,這樣即可測試出該優(yōu)化選項的性能加速比,然后與基準(zhǔn)架構(gòu)在該優(yōu)化選項的加速比做比較,差值越大表示此優(yōu)化選項最有可能是優(yōu)勢優(yōu)化選項.如619.lbm_s測試用例,iccIntel架構(gòu)中預(yù)取優(yōu)化選項的加速比為75%,但gccIntel架構(gòu)上的加速比只有29%,所以該測試用例的優(yōu)勢優(yōu)化選項為預(yù)取優(yōu)化選項,為后面的優(yōu)化確定了優(yōu)化方向.

    在此基礎(chǔ)上,我們借助VTune工具,確定熱點區(qū)域函數(shù),將分析代碼縮減至一定的范圍,有助于下一步的分析.接下來進(jìn)一步線性對比該熱點函數(shù)優(yōu)化之后的匯編指令,經(jīng)發(fā)現(xiàn)是代碼分支和預(yù)取距離的因素導(dǎo)致gcc編譯的預(yù)取指令少于icc編譯的預(yù)取指令,為此修改gcc源碼,最終相較于優(yōu)化之前的gcc版本,該測試用例有67%的性能提升.

    綜上所述,PDCA是一個實用的分析優(yōu)化方法,在選定峰值架構(gòu)之后,通過細(xì)粒度分析,可以準(zhǔn)確定位出優(yōu)勢優(yōu)化選項和優(yōu)化意見,并最終達(dá)到很好的性能提升效果.

    4 相關(guān)工作

    編譯器的選型受機(jī)器平臺和編譯器特征的影響.現(xiàn)今機(jī)器平臺也越發(fā)復(fù)雜,通常是處理器與多個加速設(shè)備互聯(lián)組成異構(gòu)系統(tǒng)[9].高性能計算系統(tǒng)架構(gòu)基本使用了MIC(many integrated core architec-ture)和GPU[10]等眾核處理器作為加速器或協(xié)處理器.王淼團(tuán)隊在異構(gòu)多核處理器上提出了一種代碼自動生成框架[11].

    隨著半導(dǎo)體工藝技術(shù)的提升,編譯器的發(fā)展也是日新月異.華為為解決Android應(yīng)用程序安裝速度慢和運行效率低的問題,開發(fā)了方舟編譯器.llvm是目前研究最熱和發(fā)展最快的開源編譯器之一.根據(jù)它可定制的特性以及遵守伯克利軟件發(fā)行版(Berkeley software distribution, BSD)的開源協(xié)議,許多廠商已經(jīng)開源出了許多優(yōu)秀的產(chǎn)品.谷歌基于llvm開發(fā)了Gollvm,旨在為Go語言提供更強大的特定編譯器.微軟基于llvm開發(fā)了LLILC,作為跨平臺的.net代碼生成工具.AMD也基于llvm開發(fā)出AOCC編譯器,旨在針對AMD系列17 h處理器-Zen架構(gòu)提高性能.不僅國外企業(yè)熱衷于llvm,國內(nèi)許多企業(yè)也越來越多地選擇了llvm,將其作為它們核心產(chǎn)品的基本框架.AI領(lǐng)域的創(chuàng)業(yè)公司,如寒武紀(jì)、地平線等,將llvm搭載于自己的智能芯片上.

    編譯器的優(yōu)化模塊高達(dá)數(shù)百種,編譯器的優(yōu)化順序也非常重要.迭代搜索是一種確定優(yōu)化選項執(zhí)行順序的一種重要技術(shù),相對于靜態(tài)模式有顯著的性能體現(xiàn)[12].Ogilvie團(tuán)隊將序列分析的方法和迭代編譯的主動學(xué)習(xí)技術(shù)相結(jié)合,可以降低迭代編譯花費的成本并且能預(yù)測特定應(yīng)用程序的重要優(yōu)化選項[1].Dubach團(tuán)隊基于機(jī)器主動學(xué)習(xí)的方法在不同平臺上自動學(xué)習(xí)最佳的優(yōu)化,以適用于任何新的微體系架構(gòu)[4].Kulkarni團(tuán)隊是使用機(jī)器學(xué)習(xí)的方法將優(yōu)化順序構(gòu)建成Markov模型,以減小編譯器優(yōu)化階段的排序問題[13].優(yōu)化之后的測試用例代碼大小是決定其性能高低的關(guān)鍵因素,為了減小測試用例代碼量,王錚團(tuán)隊采用了序列對比來合并任意函數(shù),以此可以提升過程間優(yōu)化的性能[5].為了實現(xiàn)高效的預(yù)取優(yōu)化,Timothy團(tuán)隊采用深度優(yōu)先算法實現(xiàn)了一種新的編譯器通道,實現(xiàn)自動生成用于間接訪問內(nèi)存的預(yù)取[14].Doerfert團(tuán)隊根據(jù)Presburger算法框架來收集、概括程序特征和簡化優(yōu)化先決條件[15].Fursin團(tuán)隊在gcc編譯器上使用了機(jī)器學(xué)習(xí)的方法,實現(xiàn)自動提取程序特征以調(diào)整程序優(yōu)化變換[16].

    SPEC CPU2017是重要的性能測試集,此測試集包含的程序用例多,復(fù)雜度高,代碼量大且涉及的算法廣泛[17].Panda團(tuán)隊基于主成分分析(PCA)和聚類等統(tǒng)計方法來尋找測試基準(zhǔn)程序間的相似性[7].使用測試基準(zhǔn)的子集,這可極大減少測試時間.Genesis[18]是一種生成用于機(jī)器學(xué)習(xí)的性能自動調(diào)優(yōu)的合成程序語言.Cummins團(tuán)隊在大量的開源庫源碼中,使用深度學(xué)習(xí)方法自動地推測程序片段結(jié)構(gòu),然后自動生成與此程序片段結(jié)構(gòu)相似的應(yīng)用測試程序[19].

    5 總結(jié)與展望

    本文闡述了編譯器的優(yōu)化受機(jī)器平臺和編譯器特征的影響.提出了一種基于峰值數(shù)據(jù)的面向跨平臺跨編譯器的編譯器分析與優(yōu)化方法.選擇峰值架構(gòu),構(gòu)建目標(biāo)編譯器在目標(biāo)平臺上的理想性能提升空間,并為其做最大可能的性能優(yōu)化與提升.

    本文通過實驗驗證了該方法在多平臺與多編譯器之間的普適性與實用性.分別在Intel和Hygon平臺上為SPEC CPU2017定點和浮點每個測試用例提供可靠實用的峰值架構(gòu),并在Intel平臺上對突出的峰值架構(gòu)測試用例做了詳盡分析,結(jié)合對常用峰值選項的迭代編譯與成熟的機(jī)器學(xué)習(xí)優(yōu)化分析方法為目標(biāo)編譯器總結(jié)出優(yōu)化方向.在“最后一步”的分析中更多地依賴工作者的經(jīng)驗確定待優(yōu)化方向,還沒有成熟的自動化工具,這是我們未來研究的方向與重點.

    貢獻(xiàn)聲明:賴慶寬進(jìn)行了該論文的實驗驗證和論文撰寫等工作;呂方進(jìn)行了論文中方法的設(shè)計和論文的修改;何先波和賀春林進(jìn)行了論文的修改和校正;馮曉兵進(jìn)行了課題的調(diào)研、論文的修改和討論.

    猜你喜歡
    編譯器選項峰值
    “四單”聯(lián)動打造適齡兒童隊前教育峰值體驗
    少先隊活動(2022年9期)2022-11-23 06:55:52
    基于相異編譯器的安全計算機(jī)平臺交叉編譯環(huán)境設(shè)計
    跟蹤導(dǎo)練(四)
    閱讀理解
    跟蹤導(dǎo)練(5)
    單項填空精選練習(xí)100道
    寬占空比峰值電流型準(zhǔn)PWM/PFM混合控制
    基于峰值反饋的電流型PFM控制方法
    通用NC代碼編譯器的設(shè)計與實現(xiàn)
    更正
    天天添夜夜摸| 精品一区二区三区四区五区乱码| 国产高清激情床上av| 在线观看一区二区三区激情| 日韩制服丝袜自拍偷拍| 操美女的视频在线观看| 三级毛片av免费| svipshipincom国产片| 一级片'在线观看视频| 成人18禁在线播放| 2018国产大陆天天弄谢| 亚洲伊人久久精品综合| 一区二区av电影网| 最新在线观看一区二区三区| 欧美另类亚洲清纯唯美| 可以免费在线观看a视频的电影网站| 大片电影免费在线观看免费| 欧美日韩福利视频一区二区| 亚洲熟女精品中文字幕| 99久久国产精品久久久| 久久天躁狠狠躁夜夜2o2o| a级毛片在线看网站| 嫁个100分男人电影在线观看| 国产黄色免费在线视频| 桃红色精品国产亚洲av| 一区二区三区精品91| 久久中文字幕人妻熟女| 亚洲九九香蕉| 男女免费视频国产| 中亚洲国语对白在线视频| 中文字幕另类日韩欧美亚洲嫩草| 纵有疾风起免费观看全集完整版| 国产福利在线免费观看视频| 欧美精品人与动牲交sv欧美| 欧美日韩成人在线一区二区| bbb黄色大片| 欧美日韩亚洲国产一区二区在线观看 | 国产午夜精品久久久久久| 亚洲熟妇熟女久久| 日韩熟女老妇一区二区性免费视频| 国产精品一区二区在线观看99| 夜夜爽天天搞| 国产黄频视频在线观看| 一进一出抽搐动态| 一本—道久久a久久精品蜜桃钙片| 国产片内射在线| 国产成人免费无遮挡视频| 国产精品久久久久成人av| 建设人人有责人人尽责人人享有的| 伊人久久大香线蕉亚洲五| 丝袜喷水一区| 美女高潮喷水抽搐中文字幕| 19禁男女啪啪无遮挡网站| 女人久久www免费人成看片| 一夜夜www| 最新的欧美精品一区二区| 亚洲天堂av无毛| aaaaa片日本免费| 成人国语在线视频| 欧美国产精品一级二级三级| 亚洲欧美日韩高清在线视频 | 亚洲熟妇熟女久久| 国产伦人伦偷精品视频| 一区二区三区精品91| 桃花免费在线播放| 国产精品 欧美亚洲| 中文字幕av电影在线播放| 无限看片的www在线观看| 国产日韩欧美视频二区| 伊人久久大香线蕉亚洲五| 久久天堂一区二区三区四区| 久久亚洲真实| 视频区图区小说| 菩萨蛮人人尽说江南好唐韦庄| 在线播放国产精品三级| 精品高清国产在线一区| 岛国在线观看网站| 国产高清视频在线播放一区| 精品少妇一区二区三区视频日本电影| 国产精品一区二区精品视频观看| 久久久久久人人人人人| 免费看a级黄色片| 国产精品免费一区二区三区在线 | 桃花免费在线播放| av天堂久久9| 日日爽夜夜爽网站| 在线 av 中文字幕| 亚洲专区中文字幕在线| 巨乳人妻的诱惑在线观看| 人人妻人人爽人人添夜夜欢视频| 国产成人精品在线电影| 日韩人妻精品一区2区三区| 精品国产一区二区久久| 老司机福利观看| 精品国产乱子伦一区二区三区| av电影中文网址| 中文亚洲av片在线观看爽 | 久久国产精品男人的天堂亚洲| 18禁国产床啪视频网站| 免费高清在线观看日韩| 母亲3免费完整高清在线观看| 日本一区二区免费在线视频| 18禁裸乳无遮挡动漫免费视频| 亚洲精品久久午夜乱码| 国产精品熟女久久久久浪| 午夜视频精品福利| 在线永久观看黄色视频| 精品少妇黑人巨大在线播放| 51午夜福利影视在线观看| 欧美成狂野欧美在线观看| 可以免费在线观看a视频的电影网站| 色视频在线一区二区三区| 日韩免费高清中文字幕av| 亚洲色图av天堂| 韩国精品一区二区三区| 久久毛片免费看一区二区三区| 久久中文字幕一级| 色精品久久人妻99蜜桃| 国产成人欧美在线观看 | 欧美乱码精品一区二区三区| 妹子高潮喷水视频| 亚洲欧美激情在线| 在线观看一区二区三区激情| 美女高潮到喷水免费观看| 人成视频在线观看免费观看| 日本一区二区免费在线视频| 黑人猛操日本美女一级片| 色综合婷婷激情| 久久国产精品影院| 韩国精品一区二区三区| kizo精华| 欧美激情高清一区二区三区| 桃红色精品国产亚洲av| 亚洲成国产人片在线观看| 91老司机精品| 岛国在线观看网站| 黑人巨大精品欧美一区二区mp4| av线在线观看网站| 国产伦理片在线播放av一区| 肉色欧美久久久久久久蜜桃| 国产精品成人在线| 亚洲综合色网址| xxxhd国产人妻xxx| 一边摸一边做爽爽视频免费| 99国产极品粉嫩在线观看| 人妻一区二区av| cao死你这个sao货| 国产欧美日韩综合在线一区二区| 一级毛片电影观看| 美国免费a级毛片| 久久久久久久大尺度免费视频| 亚洲欧美色中文字幕在线| 亚洲中文av在线| 18在线观看网站| 久久精品国产99精品国产亚洲性色 | 国产精品av久久久久免费| 欧美成狂野欧美在线观看| 亚洲第一欧美日韩一区二区三区 | 亚洲中文字幕日韩| 在线观看一区二区三区激情| 国产午夜精品久久久久久| 一边摸一边抽搐一进一小说 | 国产亚洲欧美精品永久| 一区二区三区国产精品乱码| 热re99久久精品国产66热6| 欧美黑人精品巨大| 久久中文字幕一级| 一进一出抽搐动态| 50天的宝宝边吃奶边哭怎么回事| 亚洲午夜精品一区,二区,三区| 久久久久久久国产电影| 亚洲国产看品久久| 午夜福利在线免费观看网站| 最近最新免费中文字幕在线| 国产麻豆69| 久久午夜综合久久蜜桃| 老司机深夜福利视频在线观看| 国产欧美日韩一区二区三区在线| 久久天堂一区二区三区四区| 久久中文字幕一级| 国产精品偷伦视频观看了| 国产成人啪精品午夜网站| 不卡av一区二区三区| 久久人人97超碰香蕉20202| 99re6热这里在线精品视频| 电影成人av| 欧美黄色淫秽网站| 国产99久久九九免费精品| 亚洲五月色婷婷综合| 丝瓜视频免费看黄片| 十八禁网站网址无遮挡| 汤姆久久久久久久影院中文字幕| 一级片免费观看大全| 99久久精品国产亚洲精品| 亚洲色图综合在线观看| 又紧又爽又黄一区二区| 国产成人系列免费观看| 国产精品一区二区在线观看99| 最黄视频免费看| 久久久久久久久免费视频了| 精品福利观看| 亚洲精品在线观看二区| 日韩三级视频一区二区三区| 亚洲国产欧美一区二区综合| 一本色道久久久久久精品综合| 日日爽夜夜爽网站| 一区二区三区激情视频| 日韩视频在线欧美| 18禁美女被吸乳视频| 国产97色在线日韩免费| 99久久99久久久精品蜜桃| 天天躁夜夜躁狠狠躁躁| 国产欧美亚洲国产| 亚洲熟女精品中文字幕| 国产在线精品亚洲第一网站| 无限看片的www在线观看| 国产日韩欧美亚洲二区| 他把我摸到了高潮在线观看 | 精品高清国产在线一区| 国产高清视频在线播放一区| 亚洲精品美女久久av网站| 欧美乱妇无乱码| 最近最新中文字幕大全电影3 | 母亲3免费完整高清在线观看| 国产成人免费观看mmmm| 精品卡一卡二卡四卡免费| 精品亚洲乱码少妇综合久久| 露出奶头的视频| 久久久国产成人免费| 欧美久久黑人一区二区| 一本大道久久a久久精品| 国产精品影院久久| 亚洲精品美女久久久久99蜜臀| 这个男人来自地球电影免费观看| 午夜精品久久久久久毛片777| 国产亚洲午夜精品一区二区久久| 在线 av 中文字幕| 成年动漫av网址| 久久久久久久精品吃奶| 色综合欧美亚洲国产小说| 国产在视频线精品| 丁香欧美五月| 久久精品国产亚洲av高清一级| 久久久久国产一级毛片高清牌| 免费一级毛片在线播放高清视频 | 精品福利观看| 自线自在国产av| 国产精品九九99| 日本wwww免费看| 美国免费a级毛片| 国产男靠女视频免费网站| 美女高潮到喷水免费观看| 久久香蕉激情| 精品国产乱子伦一区二区三区| 建设人人有责人人尽责人人享有的| 国产一卡二卡三卡精品| 又大又爽又粗| 国产日韩一区二区三区精品不卡| 一级黄色大片毛片| 在线永久观看黄色视频| 国产黄色免费在线视频| 伦理电影免费视频| 国产精品一区二区精品视频观看| 国产又色又爽无遮挡免费看| 亚洲一码二码三码区别大吗| 成人国语在线视频| 一本大道久久a久久精品| 丁香六月天网| 男女之事视频高清在线观看| 欧美一级毛片孕妇| 亚洲自偷自拍图片 自拍| 在线观看一区二区三区激情| 国产伦人伦偷精品视频| 精品久久蜜臀av无| 欧美日韩av久久| 考比视频在线观看| 免费人妻精品一区二区三区视频| 黄片播放在线免费| 在线亚洲精品国产二区图片欧美| 国产欧美亚洲国产| 久久久久视频综合| 9热在线视频观看99| 宅男免费午夜| 麻豆国产av国片精品| 国产免费视频播放在线视频| 极品少妇高潮喷水抽搐| 国产亚洲精品久久久久5区| 国产男女内射视频| 中文亚洲av片在线观看爽 | 岛国毛片在线播放| 成人国产av品久久久| 女人高潮潮喷娇喘18禁视频| 欧美在线一区亚洲| 欧美精品av麻豆av| 成人av一区二区三区在线看| 欧美日本中文国产一区发布| 99久久国产精品久久久| 亚洲中文日韩欧美视频| 国产又爽黄色视频| 久久精品91无色码中文字幕| 高潮久久久久久久久久久不卡| 亚洲全国av大片| 人人妻人人澡人人爽人人夜夜| 大码成人一级视频| 老司机亚洲免费影院| 亚洲成av片中文字幕在线观看| 精品久久久久久电影网| 国产精品国产高清国产av | 19禁男女啪啪无遮挡网站| 桃花免费在线播放| 9热在线视频观看99| 亚洲视频免费观看视频| 久久香蕉激情| 女人爽到高潮嗷嗷叫在线视频| 午夜福利欧美成人| 最近最新中文字幕大全免费视频| 亚洲国产中文字幕在线视频| 国产日韩欧美视频二区| 成人免费观看视频高清| 国产成人欧美在线观看 | 亚洲精品国产区一区二| 久久精品人人爽人人爽视色| 久久精品国产99精品国产亚洲性色 | 精品久久久久久电影网| 一区二区三区乱码不卡18| 午夜福利乱码中文字幕| 久久精品成人免费网站| 看免费av毛片| 精品亚洲成国产av| 母亲3免费完整高清在线观看| 黄片播放在线免费| 99久久人妻综合| 亚洲国产欧美一区二区综合| 亚洲情色 制服丝袜| 久久人人97超碰香蕉20202| 满18在线观看网站| 亚洲精品久久午夜乱码| 在线观看一区二区三区激情| 肉色欧美久久久久久久蜜桃| 欧美精品av麻豆av| 在线亚洲精品国产二区图片欧美| 欧美日韩亚洲综合一区二区三区_| 欧美日韩亚洲国产一区二区在线观看 | 99香蕉大伊视频| 无限看片的www在线观看| 国产不卡av网站在线观看| 极品人妻少妇av视频| 777久久人妻少妇嫩草av网站| 国产在线视频一区二区| 少妇的丰满在线观看| 久久国产精品影院| videosex国产| 国产激情久久老熟女| 久久久久久久大尺度免费视频| 一夜夜www| av网站在线播放免费| 热99re8久久精品国产| 99久久99久久久精品蜜桃| 国产亚洲一区二区精品| 亚洲av日韩精品久久久久久密| 国产亚洲欧美精品永久| 777久久人妻少妇嫩草av网站| 国产在线视频一区二区| 老司机福利观看| 国产成人欧美| 亚洲一码二码三码区别大吗| 免费一级毛片在线播放高清视频 | 精品国产一区二区三区四区第35| 波多野结衣一区麻豆| 老司机亚洲免费影院| 啦啦啦 在线观看视频| 高清av免费在线| 狠狠精品人妻久久久久久综合| 欧美激情高清一区二区三区| 黄色丝袜av网址大全| av线在线观看网站| 国产精品久久久久久人妻精品电影 | 久久精品亚洲精品国产色婷小说| 久久精品熟女亚洲av麻豆精品| 欧美乱妇无乱码| 日韩免费高清中文字幕av| 一本一本久久a久久精品综合妖精| 热99re8久久精品国产| 亚洲精品一卡2卡三卡4卡5卡| 老汉色av国产亚洲站长工具| 成人国语在线视频| 成人特级黄色片久久久久久久 | 国产单亲对白刺激| 黄色成人免费大全| 亚洲,欧美精品.| 极品人妻少妇av视频| 国产精品1区2区在线观看. | 男女午夜视频在线观看| 99riav亚洲国产免费| 午夜91福利影院| 精品人妻在线不人妻| a在线观看视频网站| 91九色精品人成在线观看| 精品一品国产午夜福利视频| 日韩有码中文字幕| 下体分泌物呈黄色| 日本黄色日本黄色录像| 亚洲伊人久久精品综合| 又紧又爽又黄一区二区| 精品久久久久久久毛片微露脸| 高清在线国产一区| 亚洲精品在线观看二区| 两性夫妻黄色片| 国产老妇伦熟女老妇高清| 19禁男女啪啪无遮挡网站| 免费久久久久久久精品成人欧美视频| 欧美+亚洲+日韩+国产| 亚洲精品自拍成人| 大片免费播放器 马上看| 久久久精品免费免费高清| 亚洲免费av在线视频| 激情视频va一区二区三区| 国产伦人伦偷精品视频| 亚洲欧美日韩高清在线视频 | 日本vs欧美在线观看视频| 国产精品1区2区在线观看. | 国产精品香港三级国产av潘金莲| 成年人黄色毛片网站| 热99国产精品久久久久久7| 欧美日本中文国产一区发布| svipshipincom国产片| 99国产极品粉嫩在线观看| 亚洲色图 男人天堂 中文字幕| 精品少妇久久久久久888优播| 久久天堂一区二区三区四区| 2018国产大陆天天弄谢| 乱人伦中国视频| 在线观看免费日韩欧美大片| 搡老熟女国产l中国老女人| 精品人妻熟女毛片av久久网站| 成人三级做爰电影| 精品亚洲乱码少妇综合久久| 欧美精品一区二区免费开放| 咕卡用的链子| 女性生殖器流出的白浆| 国产精品一区二区在线不卡| 国产又爽黄色视频| 国产精品美女特级片免费视频播放器 | 满18在线观看网站| 精品国产一区二区久久| 亚洲欧美激情在线| 一夜夜www| 午夜日韩欧美国产| 99re6热这里在线精品视频| 国产精品免费大片| 97在线人人人人妻| 国产欧美日韩一区二区精品| 国产精品一区二区精品视频观看| 高清黄色对白视频在线免费看| 99九九在线精品视频| 女性生殖器流出的白浆| 日日摸夜夜添夜夜添小说| 国产一区二区三区综合在线观看| 久久久精品94久久精品| 丁香六月天网| 国产欧美日韩综合在线一区二区| 日韩中文字幕欧美一区二区| 69av精品久久久久久 | 视频区欧美日本亚洲| 国产亚洲午夜精品一区二区久久| 97在线人人人人妻| 免费在线观看黄色视频的| 一区二区三区激情视频| 欧美精品人与动牲交sv欧美| 99九九在线精品视频| 欧美日本中文国产一区发布| 男女高潮啪啪啪动态图| 人人妻,人人澡人人爽秒播| 欧美成狂野欧美在线观看| 一二三四在线观看免费中文在| 狠狠婷婷综合久久久久久88av| 99九九在线精品视频| 女人久久www免费人成看片| 黄色a级毛片大全视频| 国产精品国产av在线观看| 亚洲免费av在线视频| 丝瓜视频免费看黄片| 久久久久久久久久久久大奶| 精品少妇内射三级| 国产在线视频一区二区| 国产精品 欧美亚洲| 国产精品麻豆人妻色哟哟久久| 亚洲国产av影院在线观看| 另类精品久久| 中国美女看黄片| 久久国产精品影院| 亚洲av日韩在线播放| 91九色精品人成在线观看| 亚洲中文av在线| 国产一区二区 视频在线| 男女无遮挡免费网站观看| 亚洲成国产人片在线观看| 乱人伦中国视频| 操出白浆在线播放| 精品一区二区三区视频在线观看免费 | 亚洲精品粉嫩美女一区| 男女高潮啪啪啪动态图| 免费少妇av软件| 操美女的视频在线观看| 黑人巨大精品欧美一区二区蜜桃| 欧美日韩成人在线一区二区| 黄色视频在线播放观看不卡| 国内毛片毛片毛片毛片毛片| 午夜福利影视在线免费观看| 欧美日韩中文字幕国产精品一区二区三区 | 老司机影院毛片| 国产成人免费无遮挡视频| 日韩三级视频一区二区三区| 怎么达到女性高潮| 久久久久精品人妻al黑| 午夜免费鲁丝| 日本黄色日本黄色录像| 一级毛片女人18水好多| 老汉色av国产亚洲站长工具| 丰满迷人的少妇在线观看| 日韩欧美三级三区| 91大片在线观看| 国产精品久久久人人做人人爽| 成人18禁在线播放| 他把我摸到了高潮在线观看 | 国产精品久久久人人做人人爽| 亚洲国产中文字幕在线视频| av欧美777| 国产激情久久老熟女| 99re在线观看精品视频| 91麻豆av在线| 一区福利在线观看| 777米奇影视久久| 午夜福利欧美成人| 法律面前人人平等表现在哪些方面| 国产精品香港三级国产av潘金莲| av网站在线播放免费| 精品国产一区二区三区四区第35| 欧美成人免费av一区二区三区 | 国产精品免费视频内射| 亚洲一区二区三区欧美精品| 麻豆成人av在线观看| 大香蕉久久成人网| 丝袜在线中文字幕| 免费在线观看黄色视频的| 男人舔女人的私密视频| 久久久精品国产亚洲av高清涩受| 国产在线一区二区三区精| 夜夜夜夜夜久久久久| 日韩成人在线观看一区二区三区| 精品欧美一区二区三区在线| 精品一区二区三卡| 夫妻午夜视频| 午夜福利一区二区在线看| 久久影院123| 欧美黑人欧美精品刺激| 久久青草综合色| 亚洲熟妇熟女久久| 一区二区三区国产精品乱码| 日韩视频一区二区在线观看| 国产成+人综合+亚洲专区| 亚洲国产精品一区二区三区在线| 美女国产高潮福利片在线看| 欧美精品人与动牲交sv欧美| 国产精品久久久久久精品电影小说| 国产亚洲精品久久久久5区| 亚洲va日本ⅴa欧美va伊人久久| 啪啪无遮挡十八禁网站| 亚洲精品一卡2卡三卡4卡5卡| 汤姆久久久久久久影院中文字幕| 精品国产亚洲在线| 欧美日韩福利视频一区二区| 国产深夜福利视频在线观看| 女警被强在线播放| 国产亚洲精品第一综合不卡| 人妻久久中文字幕网| 热99久久久久精品小说推荐| 成人18禁高潮啪啪吃奶动态图| 捣出白浆h1v1| 国产成人精品久久二区二区免费| 久久中文字幕一级| 色老头精品视频在线观看| 纵有疾风起免费观看全集完整版| 久久久久网色| 欧美亚洲 丝袜 人妻 在线| 免费在线观看影片大全网站| 国产一区二区在线观看av| 亚洲成人免费av在线播放| 美女扒开内裤让男人捅视频| 91麻豆精品激情在线观看国产 | 极品教师在线免费播放| 我要看黄色一级片免费的| 天天操日日干夜夜撸| 亚洲欧美激情在线| 在线观看免费午夜福利视频| 亚洲美女黄片视频| 国产精品欧美亚洲77777| 一进一出好大好爽视频| 亚洲精品久久午夜乱码| 天天添夜夜摸| 亚洲一区中文字幕在线| 亚洲五月婷婷丁香| 超碰97精品在线观看| 亚洲av第一区精品v没综合| 我要看黄色一级片免费的| 69av精品久久久久久 | a在线观看视频网站| 亚洲国产成人一精品久久久| 最新在线观看一区二区三区| 国产淫语在线视频| 黄色a级毛片大全视频| 久久国产精品大桥未久av| 9热在线视频观看99| 香蕉国产在线看| 国产亚洲精品第一综合不卡|