Increased MT sup threshold for double to 201.

Details:
- Fine-tuned the double-precision real MT threshold (which controls
  whether the sup implementation kicks for smaller m dimension values)
  from 180 to 201 for haswell and 180 to 256 for zen.
- Updated octave scripts in test/sup/octave to include a seventh column
  to display performance for m = n = k.
This commit is contained in:
Field G. Van Zee
2019-05-31 17:30:51 -05:00
parent cb788ffc89
commit a4e8801d08
5 changed files with 40 additions and 25 deletions

View File

@@ -18,6 +18,7 @@ for io = 1:nops
opsupnames( i+3, : ) = sprintf( '%s_%s_mpn%dk%d', op, stor, smalln, smallk );
opsupnames( i+4, : ) = sprintf( '%s_%s_m%dnpk%d', op, stor, smallm, smallk );
opsupnames( i+5, : ) = sprintf( '%s_%s_m%dn%dkp', op, stor, smallm, smalln );
opsupnames( i+6, : ) = sprintf( '%s_%s_mpnpkp', op, stor );
opnames( i+0, : ) = sprintf( '%s', op );
opnames( i+1, : ) = sprintf( '%s', op );
@@ -25,8 +26,9 @@ for io = 1:nops
opnames( i+3, : ) = sprintf( '%s', op );
opnames( i+4, : ) = sprintf( '%s', op );
opnames( i+5, : ) = sprintf( '%s', op );
opnames( i+6, : ) = sprintf( '%s', op );
i = i + 6;
i = i + 7;
end
r_val1 = opsupnames;

View File

@@ -18,7 +18,8 @@ else
show_plot = 1;
end
legend_plot_id = 11;
%legend_plot_id = 11;
legend_plot_id = 1*cols + 1*5;
if 1
ax1 = subplot( rows, cols, theid );
@@ -96,8 +97,8 @@ x_end = data_blissup( size( data_blissup, 1 ), psize_col );
x_axis( :, 1 ) = data_blissup( :, psize_col );
data_peak( 1, 1:2 ) = [ 0 max_perf_core ];
data_peak( 2, 1:2 ) = [ x_end max_perf_core ];
%data_peak( 1, 1:2 ) = [ 0 max_perf_core ];
%data_peak( 2, 1:2 ) = [ x_end max_perf_core ];
if show_plot == 1
blissup_ln = line( x_axis( :, 1 ), data_blissup( :, flopscol ) / nth, ...
@@ -159,7 +160,7 @@ elseif 500 <= x_end && x_end < 1000
end
if show_plot == 1 || theid == legend_plot_id
if rows == 4 && cols == 6
if rows == 4 && cols == 7
if nth == 1 && theid == legend_plot_id
leg = legend( ...
[ ...
@@ -180,7 +181,8 @@ if rows == 4 && cols == 6
set( leg,'FontSize',fontsize ); %-3 );
set( leg,'Units','inches' );
% xpos ypos
set( leg,'Position',[11.32 6.36 1.15 0.7 ] ); % (1,4tl)
%set( leg,'Position',[11.32 6.36 1.15 0.7 ] ); % (1,4tl)
set( leg,'Position',[11.92 6.54 1.15 0.7 ] ); % (1,4tl)
elseif nth > 1 && theid == legend_plot_id
end
end
@@ -204,18 +206,21 @@ if theid > (rows-1)*cols
%tpos = get( xlab, 'Position' )
%tpos(2) = tpos(2) + 10;
%set( xlab, 'Position', tpos );
if theid == rows*cols - 5
xlab = xlabel( ax1, 'm = 6; n = k' );
elseif theid == rows*cols - 4
xlab = xlabel( ax1, 'n = 8; m = k' );
elseif theid == rows*cols - 3
xlab = xlabel( ax1, 'k = 4; m = n' );
elseif theid == rows*cols - 2
xlab = xlabel( ax1, 'm; n = 8, k = 4' );
elseif theid == rows*cols - 1
xlab = xlabel( ax1, 'n; m = 6, k = 4' );
elseif theid == rows*cols - 0
xlab = xlabel( ax1, 'k; m = 6, n = 8' );
if theid == rows*cols - 6
xlab = xlabel( ax1, 'm = 6; n = k' );
elseif theid == rows*cols - 5
xlab = xlabel( ax1, 'n = 8; m = k' );
elseif theid == rows*cols - 4
xlab = xlabel( ax1, 'k = 4; m = n' );
elseif theid == rows*cols - 3
xlab = xlabel( ax1, 'm; n = 8, k = 4' );
elseif theid == rows*cols - 2
xlab = xlabel( ax1, 'n; m = 6, k = 4' );
elseif theid == rows*cols - 1
xlab = xlabel( ax1, 'k; m = 6, n = 8' );
elseif theid == rows*cols - 0
xlab = xlabel( ax1, 'm = n = k' );
end
end
if mod(theid-1,cols) == 0

View File

@@ -45,15 +45,15 @@ n_opsupnames = size( opsupnames, 1 );
if 1 == 1
%fig = figure('Position', [100, 100, 2400, 1500]);
fig = figure('Position', [100, 100, 1600, 1000]);
fig = figure('Position', [100, 100, 1860, 1000]);
orient( fig, 'portrait' );
set(gcf,'PaperUnits', 'inches');
if 0 == 1 % matlab
set(gcf,'PaperSize', [11 15.0]);
set(gcf,'PaperPosition', [0 0 11 15.0]);
set(gcf,'PaperSize', [11 17.5]);
set(gcf,'PaperPosition', [0 0 11 17.5]);
set(gcf,'PaperPositionMode','manual');
else % octave 4.x
set(gcf,'PaperSize', [10 15.0]);
set(gcf,'PaperSize', [10 17.5]);
set(gcf,'PaperPositionMode','auto');
end
set(gcf,'PaperOrientation','landscape');
@@ -120,10 +120,18 @@ for opi = 1:n_opsupnames
data_open, ...
data_vend, vend_str, ...
nth, ...
4, 6, ...
4, 7, ...
cfreq, ...
dflopspercycle, ...
opi );
clear data_st_?gemm_*
clear data_blissup;
clear data_blislpab;
clear data_eigen;
clear data_open;
clear data_vend;
end
end