<jupyter_start><jupyter_text>memcpy vs manual copy performance comparisonThe test protocol consists of solving a mix of 2000 sample and random cubes (with fixed seed). Two warmup runs were ran before the final sampling run. 2000 samples were collected in total, for each case.<jupyter_code>%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
from scipy import stats
sns.set(rc={'figure.figsize': (14, 8)})
sns.set_theme(style="ticks", palette="pastel")
df_before = pd.read_csv("data/memcpy_copy_coord_cube/before.csv") 
df_before.describe()
df_after = pd.read_csv("data/memcpy_copy_coord_cube/after.csv") 
df_after.describe()
data = [df_before["solve_time"], df_after["solve_time"]]
headers = ["before_solve_time", "after_solve_time"]
df = pd.concat(data, axis=1, keys=headers)
df.describe()
ax = sns.boxplot(data=df, showfliers=False)
ax.set(
    title="Solve Time comparison",
    # xlabel='Solve Time', 
    ylabel='Solve Time'
)
stats.mannwhitneyu(df_before["solve_time"], df_after["solve_time"])<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11926605504587157, 'fraction_numerical': 0.011009174311926606, 'mean_word_length': 6.683098591549296, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '91538', 'license': 'MIT', 'n_tokens_mistral': 390, 'n_tokens_neox': 370, 'n_words': 97, 'path': 'python_utils/memcpy vs manual copy performance comparison.ipynb', 'repo_name': 'h3nnn4n/cubotron', 'size': '1090'}