-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Break up main into separate files and added CPU timeline #15
Open
lauren45983
wants to merge
43
commits into
paper-2.2
Choose a base branch
from
improved-script
base: paper-2.2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 4 commits
Commits
Show all changes
43 commits
Select commit
Hold shift + click to select a range
62bc7d5
Break up main into separate files
lauren45983 3320b21
Added image of graph
lauren45983 fb56690
Coded the trial conditions in the data so that we can compare data
lauren45983 3e64bc7
Moved over the inter trial analysis into their own file
lauren45983 16bbb30
Hotfix for missing check_qs
charmoniumQ 150c828
added desktop sponza results
Hyjale 4f47126
Hotfix for missing check_qs (part 2)
charmoniumQ cd31a71
Merge branch 'improved-script' of https://github.com/ILLIXR/results i…
Hyjale 1ee3c6d
Merge branch 'improved-script' of https://github.com/ILLIXR/results i…
Hyjale e30373b
Updated README.md to be up to date with changes in results
lauren45983 f350a77
Merge branch 'improved-script' of https://github.com/ILLIXR/results i…
lauren45983 1918d91
Added documentation
charmoniumQ 4728022
Remove ILLIXR
charmoniumQ 88e376f
Update docs
charmoniumQ 1158d7a
Update docs
charmoniumQ 21c1cb1
Removed commented out code that is now in per/inter trial analysis
lauren45983 2e344c2
Merge branch 'improved-script' of https://github.com/ILLIXR/results i…
lauren45983 2ffe8c8
Added timers for duration of each function
lauren45983 f7751a2
Removed obsolete code
charmoniumQ 03c3c7b
Merge branch 'improved-script' of github.com:ILLIXR/results into impr…
charmoniumQ 566382d
Automated all graphs except power
JeffreyZh4ng d032989
Merge
JeffreyZh4ng d8bbe38
Added files that I forgot about
JeffreyZh4ng f813279
ISCA results v1
mhuzai a409855
Add missing results
mhuzai 12e17dc
Power and MTP done
JeffreyZh4ng 72ab5f5
Lotta new graphs
JeffreyZh4ng d38695b
Graph nits, pretty much finalized
JeffreyZh4ng d4fe726
Many more graphs and style changes
JeffreyZh4ng fc37b9f
Final push
JeffreyZh4ng 9938463
Added some code comments
JeffreyZh4ng c4195ff
Added Named Tuple Documentation
lauren45983 5a493a7
Merge branch 'improved-script' of https://github.com/ILLIXR/results i…
lauren45983 8138c56
Merge branch 'improved-script' of github.com:ILLIXR/results into impr…
charmoniumQ 32993a8
Moved plot graphs into inter trial analysis
lauren45983 e681806
Merge branch 'improved-script' of https://github.com/ILLIXR/results i…
lauren45983 cebf870
Ammend previous commit
lauren45983 7cdfc7d
Merged fps/frequency graphs into the inter_trial_analysis
charmoniumQ fe0eaea
Added cpu_timer3 data
charmoniumQ 9c69790
Update README.md
charmoniumQ bc9f556
Update README.md
charmoniumQ a24f67c
Update README.md
charmoniumQ f2f8584
wip
charmoniumQ File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
from util import PerTrialData | ||
import pandas as pd | ||
from typing import List, Dict | ||
from tqdm import tqdm | ||
|
||
def analysis(trials: List[PerTrialData], replaced_names: Dict[str,str]) -> None: | ||
populate_fps(trials, replaced_names) | ||
populate_cpu(trials, replaced_names) | ||
populate_gpu(trials, replaced_names) | ||
populate_power(trials, replaced_names) | ||
populate_mtp(trials, replaced_names) | ||
|
||
def populate_fps(trials: List[PerTrialData], replaced_names: Dict[str,str]) -> None: | ||
account_names = trials[0].ts.index.levels[0] | ||
ignore_list = ['opencv', 'Runtime', 'camera_cvtfmt', 'app_gpu1', 'app_gpu2', 'hologram', 'timewarp_gl gpu', 'app'] | ||
account_list = [name for name in account_names if name not in ignore_list] | ||
account_list.append('app') | ||
account_list = [replaced_names[name] if name in replaced_names else name for name in account_list] | ||
data_frame = pd.DataFrame() | ||
data_frame["Components"] = account_list | ||
|
||
for trial in tqdm(trials): | ||
account_names = trial.ts.index.levels[0] | ||
|
||
values = [] | ||
ignore_list = ['opencv', 'Runtime', 'camera_cvtfmt', 'app_gpu1', 'app_gpu2', 'hologram', 'timewarp_gl gpu', 'app'] | ||
for idx, name in enumerate(account_names): | ||
if name in ignore_list: | ||
continue | ||
|
||
values.append(trial.summaries["period_mean"][name]) | ||
values.append(trial.summaries["period_mean"]['app']) | ||
|
||
data_frame[trial.conditions.application + '-'+ trial.conditions.machine] = values | ||
data_frame.to_csv('../output/fps.csv', index=False) | ||
|
||
def populate_cpu(trials: List[PerTrialData], replaced_names: Dict[str,str]) -> None: | ||
account_names = trials[0].ts.index.levels[0] | ||
ignore_list = ['opencv', 'Runtime', 'camera_cvtfmt', 'app_gpu1', 'app_gpu2', 'hologram', 'timewarp_gl gpu', 'app'] | ||
account_list = [name for name in account_names if name not in ignore_list] | ||
account_list.append('app') | ||
account_list = [replaced_names[name] if name in replaced_names else name for name in account_list] | ||
account_list.insert(0, "Run Name") | ||
data_frame = pd.DataFrame([], columns=account_list) | ||
|
||
for trial in tqdm(trials): | ||
account_names = trial.ts.index.levels[0] | ||
|
||
values = {"Run Name": trial.conditions.application + '-'+ trial.conditions.machine} | ||
for idx, name in enumerate(account_names): | ||
if name in ignore_list: | ||
continue | ||
|
||
formatted_name = replaced_names[name] if name in replaced_names else name | ||
values.update({formatted_name: trial.summaries["cpu_time_duration_sum"][name]}) | ||
values.update({"Application": trial.summaries["cpu_time_duration_sum"]['app']}) | ||
|
||
data_frame = data_frame.append(values, ignore_index=True, sort=False) | ||
# from IPython import embed; embed() | ||
|
||
data_frame.to_csv('../output/cpu.csv', index=False) | ||
|
||
def populate_gpu(trials: List[PerTrialData], replaced_names: Dict[str,str]) -> None: | ||
account_names = trials[0].ts.index.levels[0] | ||
account_list = ['app_gpu1', 'app_gpu2', 'hologram', 'timewarp_gl gpu'] | ||
account_list = [replaced_names[name] if name in replaced_names else name for name in account_list] | ||
account_list.insert(0, "Run Name") | ||
data_frame = pd.DataFrame([], columns=account_list) | ||
|
||
for trial in tqdm(trials): | ||
account_names = trial.ts.index.levels[0] | ||
|
||
values = {"Run Name": trial.conditions.application + '-'+ trial.conditions.machine} | ||
name_list = ['app_gpu1', 'app_gpu2', 'hologram', 'timewarp_gl gpu'] | ||
for idx, name in enumerate(name_list): | ||
|
||
formatted_name = replaced_names[name] if name in replaced_names else name | ||
values.update({formatted_name: trial.summaries["gpu_time_duration_sum"][name]}) | ||
|
||
data_frame = data_frame.append(values, ignore_index=True, sort=False) | ||
# from IPython import embed; embed() | ||
|
||
data_frame.to_csv('../output/gpu.csv', index=False) | ||
|
||
def populate_power(trials: List[PerTrialData], replaced_names: Dict[str,str]) -> None: | ||
account_names = trials[0].ts.index.levels[0] | ||
account_list = ['CPU Power', 'GPU Power', 'DDR Power', 'SOC Power', 'SYS Power'] | ||
account_list.insert(0, "Run Name") | ||
data_frame = pd.DataFrame([], columns=account_list) | ||
|
||
for trial in tqdm(trials): | ||
account_names = trial.ts.index.levels[0] | ||
|
||
if len(trial.power_data) == 4: | ||
gpu_power = trial.power_data[0] | ||
cpu_time = trial.power_data[1] | ||
cpu_energy = trial.power_data[2] | ||
ddr_energy = trial.power_data[3] | ||
|
||
cpu_power = cpu_energy / cpu_time | ||
ddr_power = ddr_energy / cpu_time | ||
values = {"Run Name": trial.conditions.application + '-'+ trial.conditions.machine, 'GPU Power': gpu_power, 'CPU Power': cpu_power, 'DDR Power': ddr_power} | ||
data_frame = data_frame.append(values, ignore_index=True, sort=False) | ||
else: | ||
values = {"Run Name": trial.conditions.application + '-'+ trial.conditions.machine, 'GPU Power': trial.power_data[1], 'DDR Power': trial.power_data[2], 'CPU Power': trial.power_data[3], 'SOC Power': trial.power_data[4], 'SYS Power': trial.power_data[5]} | ||
data_frame = data_frame.append(values, ignore_index=True, sort=False) | ||
|
||
# from IPython import embed; embed() | ||
|
||
data_frame.to_csv('../output/power.csv', index=False) | ||
|
||
def populate_mtp(trials: List[PerTrialData], replaced_names: Dict[str,str]) -> None: | ||
for trial in tqdm(trials): | ||
trial.mtp.to_csv(trial.output_path / "mtp.csv", index=False) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There seems to be a lot of similar code in these populate_x functions. Try to see if there is some way of creating a generic populate function so we don't have to have so much repeating code.