1addpath(pathname) 2 3output_mt_sgemm_asm_blis 4output_mt_dgemm_asm_blis 5output_mt_cgemm_1m_blis 6output_mt_zgemm_1m_blis 7 8output_mt_sgemm_openblas 9output_mt_dgemm_openblas 10output_mt_cgemm_openblas 11output_mt_zgemm_openblas 12 13output_mt_sgemm_mkl 14output_mt_dgemm_mkl 15output_mt_cgemm_mkl 16output_mt_zgemm_mkl 17 18 19% SGEMM multi threaded 20 21axes1 = subplot(4, 4, 1); 22hold(axes1,'on'); 23plot(data_mt_sgemm_asm_blis(:,1), data_mt_sgemm_asm_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]); 24plot(data_mt_sgemm_openblas(:,1), data_mt_sgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]); 25plot(data_mt_sgemm_mkl(:,1), data_mt_sgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]); 26ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 27%xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' ); 28title('SGEMM (multi-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 29box(axes1,'on'); 30set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 31v = axis; % extract the current ranges 32axis( [ 0 xmax_mt 0 speak*numcores] ) 33 34 35% DGEMM multi threaded 36 37axes1 = subplot(4, 4, 5); 38hold(axes1,'on'); 39plot(data_mt_dgemm_asm_blis(:,1), data_mt_dgemm_asm_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]); 40plot(data_mt_dgemm_openblas(:,1), data_mt_dgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]); 41plot(data_mt_dgemm_mkl(:,1), data_mt_dgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]); 42ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 43%xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' ); 44title('DGEMM (multi-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 45box(axes1,'on'); 46set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 47%legend({'BLIS', 'OpenBLAS', 'ARMPL'},'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue', 'Location', 'bemt'); 48v = axis; % extract the current ranges 49axis( [ 0 xmax_mt 0 dpeak*numcores ] ) 50 51% CGEMM multi threaded 52 53axes1 = subplot(4, 4, 9); 54hold(axes1,'on'); 55plot(data_mt_cgemm_1m_blis(:,1), data_mt_cgemm_1m_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]); 56plot(data_mt_cgemm_openblas(:,1), data_mt_cgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]); 57plot(data_mt_cgemm_mkl(:,1), data_mt_cgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]); 58ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 59%xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' ); 60title('CGEMM (multi-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 61box(axes1,'on'); 62set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 63v = axis; % extract the current ranges 64axis( [ 0 xmax_mt 0 speak*numcores ] ) 65 66 67% ZGEMM multi threaded 68 69axes1 = subplot(4, 4, 13); 70hold(axes1,'on'); 71plot(data_mt_zgemm_1m_blis(:,1), data_mt_zgemm_1m_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]); 72plot(data_mt_zgemm_openblas(:,1), data_mt_zgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]); 73plot(data_mt_zgemm_mkl(:,1), data_mt_zgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]); 74ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 75xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' ); 76title('ZGEMM (multi-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 77box(axes1,'on'); 78set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue'); 79legend({'BLIS', 'OpenBLAS', 'MKL'},'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue', 'Location', 'best'); 80v = axis; % extract the current ranges 81axis( [ 0 xmax_mt 0 dpeak*numcores ] ) 82 83clear *gemm* 84rmpath(pathname) 85