Диссертация (1149957), страница 11
Текст из файла (страница 11)
Таблица с замерами времени работы программных реализацийблочного алгоритма, а также пакетов MKL, OpenBLAS и PLASMA. Случай, когдаматрица A и матрица B квадратные.NMKLOpenBLASPLASMA,PLASMA,Алгоритм с(среднее(среднееблочноестандартноедвойнымвремя ввремя вразмещениеразмещениеблочнымсек.)сек.)(среднее(среднееразмещениевремя ввремя в сек.)м данныхсек.)(среднеевремя в сек.)320.0024550.0000220.0015990.0018840.000300640.0044380.0000410.0012250.0017910.0002531280.0050310.0000830.0013890.0018750.0003461600.0052440.0001310.0015820.0020490.0005691920.0056420.0001920.0018920.0021380.0006592240.0060600.0002830.0022440.0023710.0005752560.0064640.0003860.0028080.0028260.0010663840.0080160.0011840.0039120.0043370.0015545120.0093790.0026730.0048650.0073060.0041267680.0153230.0088800.0148350.0188210.00857910240.0286830.0206590.0259120.0383900.02145615360.7898020.0688600.0778880.1138800.06891820480.9240780.1611220.1798210.2610530.15654130720.9409430.5395370.6070070.8401240.52385240961.7039431.2684691.4363951.6209851.23005851202.7036692.4769882.7963083.7361122.41077161444.5216044.2618924.8343125.4383164.15097371687.4038216.7787627.67845510.2563526.598716819210.53158410.07106011.44167915.5695949.80559174921614.37251114.36238016.70614421.72928314.0148681024020.01771819.66117922.35684830.02902119.1867081126426.39272326.17328629.72102639.71543725.5659231228834.02895333.95986238.61618951.65048033.0945411331243.19182443.17439949.13020065.65930242.1834831433653.61824253.86367861.32446282.00286352.6207871536066.43645466.80666075.861025100.74171264.7783541638481.18918380.28040791.603202121.93996778.3859851740895.94540097.411367109.858208138.88973594.342319В Таблице 10 приведены значения производительности, рассчитанныеотносительно пиковой производительности, программных реализаций блочногоалгоритма, а также пакетов MKL, OpenBLAS и PLASMA.Таблица 10.
Таблица со значениями производительности, рассчитаннымиотносительно пиковой производительности, программных реализаций блочногоалгоритма, а также пакетов MKL, OpenBLAS и PLASMA. Случай, когда матрицаA и матрица B квадратные.NMKLOpenBLASPLASMA,PLASMA,Алгоритм сблочноестандартноедвойнымразмещение размещениеблочнымразмещением320.0002320.0253970.0003560.0003020.001895640.0010260.1104640.0037140.0025420.0180031280.0072370.4376070.0262050.0194220.1051061600.0135610.5420050.0449620.0347090.1248881920.0217800.6406670.0649610.0574640.1864082240.0322020.6890140.0869640.0823050.3393552560.0450580.7549800.1037140.1030830.273289753840.1226420.8306210.2513140.2266740.6325055120.2484510.8718080.4790050.3189300.5648077680.5132260.8856520.5301190.4178530.91669410240.6499050.9023400.7194040.4855780.86882615360.0796590.9136600.8077530.5524640.91289020480.1613830.9255770.8293300.5712660.95266530720.5349070.9328670.8291770.5990980.96079940960.7001680.9405410.8305840.7360010.96991151200.8618540.9407270.8333020.6236880.96656661440.8905100.9447760.8329070.7404000.97002171680.8636060.9432380.8327170.6234170.96897481920.9062620.9477030.8341760.6130140.97336092160.9455230.9461900.8134460.6254020.969652102400.9312430.9481300.8338090.6207780.971576112640.9400940.9479760.8348180.6247350.970496122880.9466130.9485390.8341650.6236580.973340133120.9482130.9485960.8336020.6237510.970879143360.9540010.9496540.8341180.6237810.972085153600.9469890.9417410.8293400.6245140.971228163840.9404570.9511030.8335400.6261690.974090174080.9545530.9401880.8336650.6594080.970773Полученные результаты свидетельствуют о том, что предложенный авторомблочный алгоритм работает быстрее чем алгоритмы из других библиотек.
Вчастности, данный алгоритм для N=17408 работает на 2% быстрее MKL, на 3%быстрее OpenBLAS, на 14% быстрее алгоритма пакета PLASMA с блочнымразмещением входных матриц и на 31% быстрее алгоритма пакета PLASMA состандартным размещением входных.76На Рисунке 15 представлены результаты сравнения производительностипрограммных реализаций рассматриваемых алгоритмов для случая, когда размерматрицы A равен N 2048 и размер матрицы B равен 2048 N .Рис.
15: График производительности реализованного алгоритма, а также пакетовMKL, OpenBLAS и PLASMA. Случай, когда размер матрицы A равен N 2048 иразмер матрицы B равен 2048 N .В Таблице 11 приведены замеры времени работы программных реализацийблочного алгоритма, а также пакетов MKL, OpenBLAS и PLASMA.Таблица 11. Таблица с замерами времени работы программных реализацийблочного алгоритма, а также пакетов MKL, OpenBLAS и PLASMA.
Случай, когдаразмер матрицы A равен N 2048 и размер матрицы B равен 2048 N .NMKLOpenBLASPLASMA,(среднее(среднееблочноевремя ввремя всек.)сек.)PLASMA,Алгоритм сстандартное двойным блочнымразмещени размещениеразмещениеме (среднее(среднееданных (среднеевремя ввремя ввремя в сек.)сек.)сек.)320.0123930.0142780.0083600.2715430.004892640.0134190.0071580.0102750.2829030.007221771280.0181230.0120290.0153950.2979940.0101571600.0205820.0146020.0179940.2975110.0134681920.0225720.0169830.0217770.3105450.0170822240.0248010.0194590.0232910.3209530.0177792560.0273430.0219860.0257700.3301690.0214983840.7954840.0319770.0374880.3482310.0307635120.8238870.0418620.0490570.3854400.0398237680.8401080.0618850.0704060.4593030.06016810240.8568450.0816320.0928150.5052270.08311015360.8906640.1213290.1361760.6253410.11976620480.9257390.1612340.1803660.7041370.15670330720.8321330.2402900.2679930.9848270.23709940960.8602580.3201930.3568791.1932930.31016351200.8063570.3990780.4493241.4572110.38960061440.7930220.4790880.5366271.5975710.46341071680.8619410.5589660.6295571.7983610.54371181920.7710550.6385300.7177202.1311500.62181292160.7940770.7168000.8045852.4066890.69625310240 0.8626480.7966160.8951822.6576660.77692411264 1.5683210.8768070.9839702.8686260.85050912288 1.7965980.9565051.0733333.1657210.92961813312 1.7037761.0358911.1636313.3310861.00523914336 1.7302191.1152371.2529843.5288761.08334915360 1.7557571.1956391.3405063.7122081.16056216384 1.6765691.2767611.4296463.9903921.23668017408 1.7396711.3548271.5203553.9946141.31673118432 1.6466031.4347491.6078214.6281841.39072419456 1.6742351.5111311.6970824.8279231.46946620480 1.7333001.5922291.7882214.9609321.54565778В Таблице 12 приведены значения производительности, рассчитанныеотносительно пиковой производительности, программных реализаций блочногоалгоритма, а также пакетов MKL, OpenBLAS и PLASMA.Таблица 12.
Таблица со значениями производительности, рассчитаннымиотносительно пиковой производительности, программных реализаций блочногоалгоритма, а также пакетов MKL, OpenBLAS и PLASMA. Случай, когда размерматрицы A равен N 2048 и размер матрицы B равен 2048 N .NMKLOpenBLASPLASMA,PLASMA,Алгоритм сблочноестандартноедвойнымразмещение размещениеблочнымразмещением320.1880260.1631980.2787420.0085810.476303640.3472940.6510850.4535520.0164730.6453511280.5143070.7748760.6054510.0312780.9176241600.5660640.7979050.6474850.0391610.8650631920.6193850.8232550.6420020.0450210.8184652240.6576720.8382330.7003270.0508210.9174622560.6817700.8478740.7233850.0564600.8671043840.0351510.8744420.7458850.0802970.9089385120.0452520.8906180.7599910.0967280.9362157680.0665680.9036770.7943040.1217590.92946510240.0870230.9134340.8033780.1475880.89718515360.1255780.9218590.8213520.1788590.93389020480.1610940.9249320.8268210.2117920.95167730720.2688230.9309420.8347090.2271430.94347240960.3467120.9315060.8357510.2499480.96162751200.4623600.9342210.8297510.2558500.95694861440.5641620.9338420.8337120.2800450.9654367971680.6055610.9337920.8290880.2902410.95999181920.7736460.9342130.8311360.2799070.95933092160.8451170.9362280.8340800.2788430.963858102400.8643780.9360270.8329640.2805670.959752112640.5229920.9354620.8335820.2859280.964387122880.4980440.9354730.8336510.2826480.962530133120.5689420.9357650.8330390.2910010.964298143360.6033430.9360480.8331440.2958210.963600153600.6370360.9354680.8343720.3012980.963741163840.7116000.9344320.8345050.2989800.964717174080.7286500.9356270.8337610.3173300.962696184320.8151190.9354790.8347800.2900010.965092194560.8462030.9375380.8348110.2934480.964121204800.8603870.9366170.8339620.3006100.964838Полученные результаты свидетельствуют о том, что реализованныйалгоритм работает быстрее чем алгоритмы из других библиотек.
В частности,данный алгоритм для N=20480 работает на 10% быстрее MKL, на 3% быстрееOpenBLAS, на 13% быстрее алгоритма пакета PLASMA с блочным размещениемвходных матриц и на 66% быстрее алгоритма пакета PLASMA со стандартнымразмещением входных.3.4.Выводы к третьей главеВ третьей главе описан и реализован высокопроизводительный алгоритмумножения матриц. Начиная с размерности матриц N > 2000 как дляпрямоугольных так и для квадратных матриц предлагаемый алгоритм опережаетвсе остальные алгоритмы (MKL, PLASMA, OpenBLAS) по производительности.Ближе всех по производительности к предлагаемому алгоритму является пакетOpenBLAS, который имеет производительность на 3-6% меньше чем упредлагаемого алгоритма.80Описанный алгоритм является новым. Его новизна состоит в использованиинестандартного двойного блочного размещения матриц.
Такое размещениематриц позволяет уменьшить количество промахов к данным кеш-памяти, кданным кеш-памяти TLB, увеличить скорость подкачки данных в векторныерегистры и, тем самым, увеличить общую производительность алгоритма. Такимобразом, в данной главе раскрывается решение задачи 2.В параграфе 3.1 описываются существующие высокопроизводительныеалгоритмы умножения матриц. В частности, упоминаются пакеты Atlas, IntelMKL, PLASMA и OpenBLAS. В параграфе 3.2 приводится описание алгоритмаумножения матриц.