1addpath(pathname)
2
3output_st_sgemm_asm_blis
4output_st_dgemm_asm_blis
5output_st_cgemm_1m_blis
6output_st_zgemm_1m_blis
7
8output_st_sgemm_openblas
9output_st_dgemm_openblas
10output_st_cgemm_openblas
11output_st_zgemm_openblas
12
13output_st_sgemm_mkl
14output_st_dgemm_mkl
15output_st_cgemm_mkl
16output_st_zgemm_mkl
17
18% SGEMM Single threaded
19
20axes1 = subplot(4, 4, 1);
21hold(axes1,'on');
22plot(data_st_sgemm_asm_blis(:,1), data_st_sgemm_asm_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]);
23plot(data_st_sgemm_openblas(:,1), data_st_sgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]);
24plot(data_st_sgemm_mkl(:,1), data_st_sgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]);
25ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
26%xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' );
27title('SGEMM (single-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
28box(axes1,'on');
29set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
30v = axis;     % extract the current ranges
31axis( [ 0 v(2) 0 speak ] )
32
33
34% DGEMM Single threaded
35
36axes1 = subplot(4, 4, 5);
37hold(axes1,'on');
38plot(data_st_dgemm_asm_blis(:,1), data_st_dgemm_asm_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]);
39plot(data_st_dgemm_openblas(:,1), data_st_dgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]);
40plot(data_st_dgemm_mkl(:,1), data_st_dgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]);
41ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
42%xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' );
43title('DGEMM (single-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
44box(axes1,'on');
45set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
46%legend({'BLIS', 'OpenBLAS', 'ARMPL'},'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue', 'Location', 'best');
47v = axis;     % extract the current ranges
48axis( [ 0 v(2) 0 dpeak ] )
49
50% CGEMM Single threaded
51
52axes1 = subplot(4, 4, 9);
53hold(axes1,'on');
54plot(data_st_cgemm_1m_blis(:,1), data_st_cgemm_1m_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]);
55plot(data_st_cgemm_openblas(:,1), data_st_cgemm_openblas(:,4),'--', 'LineWidth', 1.25,'Color', [0 1 0]);
56plot(data_st_cgemm_mkl(:,1), data_st_cgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]);
57ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
58%xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' );
59title('CGEMM (single-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
60box(axes1,'on');
61set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
62v = axis;     % extract the current ranges
63axis( [ 0 v(2) 0 speak ] )
64
65
66% ZGEMM Single threaded
67
68axes1 = subplot(4, 4, 13);
69hold(axes1,'on');
70plot(data_st_zgemm_1m_blis(:,1), data_st_zgemm_1m_blis(:,4), 'LineWidth', 1.25,'Color', [0 0 1]);
71plot(data_st_zgemm_openblas(:,1), data_st_zgemm_openblas(:,4), 'LineWidth', 1.25,'Color', [0 1 0]);
72plot(data_st_zgemm_mkl(:,1), data_st_zgemm_mkl(:,4), '--', 'LineWidth', 1.25,'Color', [1 0 0]);
73ylabel( 'GFLOPS', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
74xlabel( 'matrix dimension m=n=k', 'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue' );
75title('ZGEMM (single-threaded)','FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
76box(axes1,'on');
77set(axes1,'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue');
78%legend({'BLIS', 'OpenBLAS', 'MKL'},'FontSize', fontsize, 'FontWeight', 'bold', 'FontName', 'Helvetica Neue', 'Location', 'South');
79v = axis;     % extract the current ranges
80axis( [ 0 v(2) 0 dpeak ] )
81
82clear *gemm*
83rmpath(pathname)
84