国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種確定內(nèi)存單元類型的方法及裝置的制造方法

      文檔序號:9708140閱讀:443來源:國知局
      一種確定內(nèi)存單元類型的方法及裝置的制造方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及一種確定內(nèi)存單元類型的方法及裝置。
      【背景技術(shù)】
      [0002]在目前的一些編程框架下,例如統(tǒng)一計算設(shè)備架構(gòu)(Compute Unified DeviceArchitecture, CUDA)或開放運(yùn)算語言(Open Computing Language, OpenCL),需要程序員根據(jù)經(jīng)驗(yàn)確定內(nèi)存單元的類型,即內(nèi)存單元屬于全局存儲器還是屬于局部存儲器。而完全依賴程序員的主觀經(jīng)驗(yàn),極容易出現(xiàn)誤判。
      [0003]所以,如何減小對內(nèi)存單元類型的誤判,成為目前亟待解決的問題。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明實(shí)施例提供了一種確定內(nèi)存單元類型的方法及裝置,目的在于解決如何減小對內(nèi)存單元類型的誤判的問題。
      [0005]為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了以下技術(shù)方案:
      [0006]本發(fā)明實(shí)施例的第一方面提供了一種確定內(nèi)存單元類型的方法,包括:
      [0007]判斷在多線程訪問模式下,內(nèi)存單元被合并訪問的幾率是否大于第一閾值,以及在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,是否存在存儲體沖突;
      [0008]如果內(nèi)存單元滿足第一條件,則將所述內(nèi)存單元的存儲類型確定為全局存儲,所述第一條件包括:在多線程訪問模式下,所述內(nèi)存單元被合并訪問的幾率大于第一閾值,或者,在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,存在存儲體沖突;
      [0009]如果所述內(nèi)存單元滿足第二條件,則將所述內(nèi)存單元的存儲類型確定為局部存儲,所述第二條件包括:在所述多線程訪問模式下,所述內(nèi)存單元被合并訪問的幾率小于所述第一閾值,并且,在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,不存在存儲體沖突。
      [0010]在本發(fā)明實(shí)施例的第一方面的第一種實(shí)現(xiàn)方式中,確定在所述多線程訪問模式下,所述內(nèi)存單元被合并訪問的幾率包括:
      [0011 ] 統(tǒng)計在半線程束中、所述內(nèi)存單元被訪問的次數(shù)以及被合并訪問的次數(shù);
      [0012]將所述被合并訪問的次數(shù)與所述被訪問的次數(shù)的比值作為所述被合并訪問的幾率;
      [0013]判斷在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,是否存在存儲體沖突的過程包括:
      [0014]統(tǒng)計在所述半線程束中、在所述內(nèi)存單元被訪問的過程中,存儲體沖突發(fā)生的次數(shù),如果所述存儲體沖突發(fā)生的次數(shù)不為零,則確定存在存儲體沖突,否則,則確定不存在存儲體沖突。
      [0015]在本發(fā)明實(shí)施例的第一方面的第二種實(shí)現(xiàn)方式中,在將所述內(nèi)存單元的存儲類型確定為全局存儲或局部存儲之后,還包括:
      [0016]生成分析代碼,所述分析代碼用于記錄所述內(nèi)存單元后續(xù)被訪問的情況,所述后續(xù)被訪問的情況至少包括以下一項:后續(xù)被合并訪問的次數(shù)、后續(xù)被訪問的次數(shù)。
      [0017]在本發(fā)明實(shí)施例的第一方面的第三種實(shí)現(xiàn)方式中,還包括:
      [0018]在將所述內(nèi)存單元的存儲類型確定為全局存儲的情況下,統(tǒng)計所述分析代碼中記錄的所述內(nèi)存單元被訪問的次數(shù)以及被合并訪問的次數(shù);
      [0019]當(dāng)所述分析代碼中記錄的內(nèi)存單元被訪問的次數(shù)大于第二閾值且被合并訪問的百分比小于第三閾值時,將所述內(nèi)存單元的類型更改為局部存儲,所述被合并訪問的百分比為所述被合并訪問的次數(shù)與所述被訪問的次數(shù)的比值;
      [0020]在將所述內(nèi)存單元的存儲類型確定為局部存儲的情況下,統(tǒng)計所述分析代碼中記錄的所述內(nèi)存單元被訪問的次數(shù)以及存儲體沖突發(fā)生的次數(shù);
      [0021]當(dāng)分析代碼中記錄的所述內(nèi)存單元被訪問的次數(shù)大于所述第二閾值且存儲體沖突發(fā)生的百分比大于第四閾值時,將所述內(nèi)存單元的類型更改為全局存儲,所述存儲體沖突發(fā)生的百分比為所述存儲體沖突發(fā)生的次數(shù)與所述被訪問的次數(shù)的比值。
      [0022]在本發(fā)明實(shí)施例的第一方面的第四種實(shí)現(xiàn)方式中,所述內(nèi)存單元的初始類型包括:
      [0023]預(yù)先定義的空類型。
      [0024]本發(fā)明實(shí)施例的第二方面提供了一種確定內(nèi)存單元類型的裝置,包括:
      [0025]判斷模塊,用于判斷在多線程訪問模式下,內(nèi)存單元被合并訪問的幾率是否大于第一閾值,以及在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,是否存在存儲體沖突;
      [0026]第一確定模塊,用于如果內(nèi)存單元滿足第一條件,則將所述內(nèi)存單元的存儲類型確定為全局存儲,所述第一條件包括:在多線程訪問模式下,所述內(nèi)存單元被合并訪問的幾率大于第一閾值,或者,在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,存在存儲體沖突;如果所述內(nèi)存單元滿足第二條件,則將所述內(nèi)存單元的存儲類型確定為局部存儲,所述第二條件包括:在所述多線程訪問模式下,所述內(nèi)存單元被合并訪問的幾率小于所述第一閾值,并且,在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,不存在存儲體沖突。
      [0027]在本發(fā)明實(shí)施例的第二方面的第一種實(shí)現(xiàn)方式中,所述判斷模塊確定在所述多線程訪問模式下,所述內(nèi)存單元被合并訪問的幾率包括:
      [0028]所述判斷模塊統(tǒng)計在半線程束中、所述內(nèi)存單元被訪問的次數(shù)以及被合并訪問的次數(shù),將所述被合并訪問的次數(shù)與所述被訪問的次數(shù)的比值作為所述被合并訪問的幾率;
      [0029]所述判斷模塊判斷在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,存在存儲體沖突的過程包括:
      [0030]所述判斷模塊統(tǒng)計在所述半線程束中、在所述內(nèi)存單元被訪問的過程中,存儲體沖突發(fā)生的次數(shù),如果所述存儲體沖突發(fā)生的次數(shù)不為零,則確定存在存儲體沖突,否則,則確定不存在存儲體沖突。
      [0031]在本發(fā)明實(shí)施例的第二方面的第二種實(shí)現(xiàn)方式中,還包括:
      [0032]代碼生成模塊,用于在將所述內(nèi)存單元的存儲類型確定為全局存儲或局部存儲之后,生成分析代碼,所述分析代碼用于記錄所述內(nèi)存單元后續(xù)被訪問的情況,所述后續(xù)被訪問的情況至少包括以下一項:后續(xù)被合并訪問的次數(shù)、后續(xù)被訪問的次數(shù)。
      [0033]在本發(fā)明實(shí)施例的第二方面的第三種實(shí)現(xiàn)方式中,還包括:
      [0034]存儲類型更改模塊,用于在將所述內(nèi)存單元的存儲類型確定為全局存儲的情況下,統(tǒng)計所述分析代碼中記錄的所述內(nèi)存單元被訪問的次數(shù)以及被合并訪問的次數(shù),當(dāng)所述分析代碼中記錄的內(nèi)存單元被訪問的次數(shù)大于第二閾值且被合并訪問的百分比小于第三閾值時,將所述內(nèi)存單元的類型更改為局部存儲,所述被合并訪問的百分比為所述被合并訪問的次數(shù)與所述被訪問的次數(shù)的比值;
      [0035]在將所述內(nèi)存單元的存儲類型確定為局部存儲的情況下,統(tǒng)計所述分析代碼中記錄的所述內(nèi)存單元被訪問的次數(shù)以及存儲體沖突發(fā)生的次數(shù),當(dāng)分析代碼中記錄的所述內(nèi)存單元被訪問的次數(shù)大于所述第二閾值且存儲體沖突發(fā)生的百分比大于第四閾值時,將所述內(nèi)存單元的類型更改為全局存儲,所述存儲體沖突發(fā)生的百分比為所述存儲體沖突發(fā)生的次數(shù)與所述被訪問的次數(shù)的比值。
      [0036]在本發(fā)明實(shí)施例的第二方面的第四種實(shí)現(xiàn)方式中,還包括:
      [0037]第二確定模塊,用于在所述判斷模塊判斷在多線程訪問模式下,內(nèi)存單元被合并訪問的幾率是否大于第一閾值,以及在所述多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,是否存在存儲體沖突之前,確定內(nèi)存單元的類型為預(yù)先定義的空類型。本發(fā)明實(shí)施例提供的確定內(nèi)存單元類型的方法及裝置,將在多線程訪問模式下,內(nèi)存單元被合并訪問的幾率,以及在多線程訪問模式下,在所述內(nèi)存單元被訪問的過程中,是否存在存儲體沖突,作為確定內(nèi)存單元類型的依據(jù),因?yàn)閮?nèi)存單元被合并訪問的幾率以及是否存在存儲體沖突均為內(nèi)存單元在多線程訪問模式下產(chǎn)生的客觀參數(shù),而不依賴程序員的主觀經(jīng)驗(yàn),所以,以客觀參數(shù)作為依據(jù)確定內(nèi)存單元的類型,能夠減小誤判。
      【附圖說明】
      [0038]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0039]圖1為本發(fā)明實(shí)施例公開的一種確定內(nèi)存單元類型的方法的流程圖;
      [0040]圖2為本發(fā)明實(shí)施例公開的又一種確定內(nèi)存單元類型的方法的流程圖;
      [0041]圖3為本發(fā)明實(shí)施例公開的一種確定內(nèi)存單元類型的裝置的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0042]本發(fā)明實(shí)施例公開了一種確定內(nèi)存單元類型的方法,可以應(yīng)用于圖形處理器(Graphic Processing Unit, GPU)應(yīng)用程序通過OpenCL/CUDA編譯平臺在通用計算圖形處理器(General Purpose Computing on Graphics Processing Units, GPGPU)上運(yùn)行的場旦
      ο
      [0043]本發(fā)明實(shí)施例所述的方法,在內(nèi)存單元滿足第一條件時,將所述內(nèi)存單元的存儲類型確定為全局存儲,如果所述內(nèi)存單元滿足第二條件,則將所述內(nèi)存單元的存儲類型確定為局部存儲,其中,所述第一條件
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1