예제 #1
0
def plot_mem_conv50(config, local_dir, logs, iters):
    def smoother(ss):
        return ss.ewm(span=15).mean()

    df, _, fig = pl.memory_usage(logs,
                                 iter_times=iters[0:10],
                                 mem_type='GPU_0_bfc',
                                 smoother=smoother)
    return fig
예제 #2
0
def plot_mem_ptbL(config, local_dir, logs, iters):
    def smoother(ss):
        return ss

    df, _, fig = pl.memory_usage(logs,
                                 iter_times=iters[0:10],
                                 mem_type='GPU_0_bfc',
                                 smoother=smoother)
    return fig
예제 #3
0
def plot_mem_resnet50_25(config, local_dir, logs, iters):
    def smoother(ss, ss2):
        print('{}, {}, {}'.format(ss.min(), ss.max(), ss2.mean()))
        return ss
        # return ss.ewm(span=15).mean()

    df, _, fig = pl.memory_usage(logs,
                                 iter_times=iters[0:10],
                                 mem_type='GPU_0_bfc',
                                 smoother=smoother)
    return fig
예제 #4
0
def plot_mem_resnet152_75(config, local_dir, logs, iters):
    def smoother(ss, ss2):
        print('{}, {}, {}'.format(ss.min(), ss.max(), ss2.mean()))
        return ss
        # return ss.ewm(span=15).mean()

    df, _, fig = pl.memory_usage(logs,
                                 ends=iters[0][1],
                                 show_avg=False,
                                 mem_type='GPU_0_bfc')
    fig.set_size_inches(3.45, 1.75, forward=True)
    return fig
예제 #5
0
def plot_nested_doll_mix5_samelength(config, local_dir, logs, iters):
    with mpl.style.context(('color5')):
        pf.preprocess(local_dir)
        perfdf = pf.load_file(os.path.join(local_dir, 'sessiter.output'))

        fig = plt.figure()
        spec = mpl.gridspec.GridSpec(2, 1, height_ratios=[1, 3])
        spec.update(hspace=0.2, left=0.18, right=.98, top=.8, bottom=0.22)
        ax0 = fig.add_subplot(spec[0])
        ax1 = fig.add_subplot(spec[1], sharex=ax0)
        plt.setp(ax0.get_xticklabels(), visible=False)

        df, _ = pf.session_counters(perfdf, colnames=['scheduled'], ax=ax0)

        def smoother(ss):
            sampled = ss.resample('50ms').interpolate(method='time')
            print("previous len: {} now: {}".format(len(ss), len(sampled)))
            return sampled

        df, _, _ = pl.memory_usage(logs,
                                   mem_type='GPU_0_bfc',
                                   per_sess=True,
                                   ax=ax1,
                                   show_avg=False,
                                   smoother=smoother)

        ax0.set_title('Scheduled Tasks')
        ax0.legend().set_visible(False)
        handles, labels = ax1.get_legend_handles_labels()
        ax1.legend(handles=handles,
                   labels=[
                       'alexnet_100', 'overfeat_50', 'googlenet_50',
                       "inception3_25", "resnet50_50"
                   ],
                   ncol=3,
                   loc='upper center',
                   bbox_to_anchor=(0.48, -0.19),
                   frameon=False)
        ax0.set_ylabel('# of Tasks')
        ax1.set_xlabel('Time (s)')
        ax1.set_title('Memory Usage')
        ax1.tick_params(axis='x', labelsize=8)
        ax1.tick_params(axis='y', labelsize=8)
        ax0.tick_params(axis='y', labelsize=8)
        return fig
예제 #6
0
def plot_fair20(config, local_dir, logs, iters):
    with mpl.style.context(('grayscale20')):

        def smoother(ss):
            sampled = ss.resample('500us').interpolate(method='time')
            print("previous len: {} now: {}".format(len(ss), len(sampled)))
            return sampled

        df, _, fig = pl.memory_usage(logs,
                                     mem_type='GPU_0_bfc',
                                     per_sess=True,
                                     show_avg=False)

        ax = fig.axes[-1]
        ax.legend().remove()
        ax.set_title('Memory Usage')
        # ax.set_title('resnet50_50 of 265,180,170,100 iterations')
        fig.tight_layout(pad=0)
        # fig.adjust(right=.98, top=.85, left=.2, bottom=.2)
        return fig
예제 #7
0
def plot_case_bigsmall_wc(config, local_dir, logs, iters):
    pf.preprocess(local_dir)
    perfdf = pf.load_file(os.path.join(local_dir, 'sessiter.output'))

    fig = plt.figure()
    spec = mpl.gridspec.GridSpec(2, 1, height_ratios=[1, 3])
    spec.update(hspace=0.2, left=0.16, right=.98, top=.8, bottom=0.18)
    ax0 = fig.add_subplot(spec[0])
    ax1 = fig.add_subplot(spec[1], sharex=ax0)
    plt.setp(ax0.get_xticklabels(), visible=False)

    df, _ = pf.session_counters(perfdf, colnames=['scheduled'], ax=ax0)

    def smoother(ss):
        sampled = ss.resample('500us').interpolate(method='time')
        print("previous len: {} now: {}".format(len(ss), len(sampled)))
        return sampled

    df, _, _ = pl.memory_usage(logs,
                               mem_type='GPU_0_bfc',
                               per_sess=True,
                               ax=ax1,
                               show_avg=False,
                               smoother=smoother)

    ax0.legend().set_visible(False)
    handles, labels = ax1.get_legend_handles_labels()
    ax1.legend(handles=handles,
               labels=['alexnet_100', 'inception3_25'],
               ncol=2,
               loc='upper center',
               bbox_to_anchor=(0.5, -0.2),
               frameon=False)
    ax0.set_ylabel('Scheduled\nTasks')
    ax1.set_xlabel('Time (s)')
    ax1.set_xlim([0, 115 * 1e9])
    ax1.tick_params(axis='x', labelsize=8)
    ax1.tick_params(axis='y', labelsize=8)
    ax0.tick_params(axis='y', labelsize=8)
    return fig