diff --git a/README.md b/README.md index 07b7507..dd05984 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ Data sourced from [Wikipedia's NVIDIA GPUs page](https://en.wikipedia.org/wiki/L - Memory Bandwidth over Time [[html](plots/Memory Bandwidth over Time.html), [pdf](plots/Memory Bandwidth over Time.pdf)] - Memory Bus Width over Time [[html](plots/Memory Bus Width over Time.html), [pdf](plots/Memory Bus Width over Time.pdf)] +- Memory Bandwidth per Pin over Time [[html](plots/Memory Bandwidth per Pin over Time.html), [pdf](plots/Memory Bandwidth per Pin over Time.pdf)] - Processing Power over Time [[html](plots/Processing Power over Time.html), [pdf](plots/Processing Power over Time.pdf)] - SM count over Time [[html](plots/SM count over Time.html), [pdf](plots/SM count over Time.pdf)] - Shader count over Time [[html](plots/Shader count over Time.html), [pdf](plots/Shader count over Time.pdf)] diff --git a/nvperf.py b/nvperf.py index 12c0d61..62cae2e 100755 --- a/nvperf.py +++ b/nvperf.py @@ -376,15 +376,9 @@ def merge(df, dst, src, replaceNoWithNaN=False, delete=True): # df["Core clock (MHz)"] = df["Core clock (MHz)"].astype(str).str.split(" ").str[0] df["Core clock (MHz)"] = df["Core clock (MHz)"].str.extract(r"(\d+)") -df["Memory Bus width (bit)"] = ( - df["Memory Bus width (bit)"].astype(str).str.split(" ").str[0] -) -df["Memory Bus width (bit)"] = ( - df["Memory Bus width (bit)"].astype(str).str.split("/").str[0] -) -df["Memory Bus width (bit)"] = ( - df["Memory Bus width (bit)"].astype(str).str.split(",").str[0] -) +# Simple treatment of bus width: just grab the first number +df["Memory Bus width (bit)"] = df["Memory Bus width (bit)"].apply(lambda x: str(x)) +df["Memory Bus width (bit)"] = df["Memory Bus width (bit)"].str.extract(r"(\d+)") # strip out bit width from combined column df = merge(df, "Memory Bus type & width (bit)", "Memory Bus type & width") df["bus"] = df["Memory Bus type & width (bit)"].str.extract(r"(\d+)-bit", expand=False) @@ -492,6 +486,9 @@ def merge(df, dst, src, replaceNoWithNaN=False, delete=True): df["Single-precision GFLOPS/mm2"] = pd.to_numeric( df["Single-precision GFLOPS"], errors="coerce" ) / pd.to_numeric(df["Die size (mm2)"], errors="coerce") +df["Memory Bandwidth per Pin (GB/s)"] = pd.to_numeric( + df["Memory Bandwidth (GB/s)"], errors="coerce" +) / pd.to_numeric(df["Memory Bus width (bit)"], errors="coerce") # remove references from end of model/transistor names for col in ["Model", "Transistors (million)"]: @@ -517,31 +514,6 @@ def merge(df, dst, src, replaceNoWithNaN=False, delete=True): domain=["AMD", "NVIDIA", "Intel"], range=["#ff0000", "#76b900", "#0071c5"] ) -# ahmed: -bw_selection = alt.selection_point(fields=["Memory Bus type"]) -bw_color = alt.condition( - bw_selection, alt.Color("Memory Bus type:N"), alt.value("lightgray") -) -## -bwx = ( - alt.Chart(df) - .mark_point() - .encode( - x="Launch:T", - y=alt.Y( - "Memory Bandwidth (GB/s):Q", - scale=alt.Scale(type="log"), - ), - # color='Memory Bus type', - color=bw_color, - shape="Vendor", - tooltip=["Model", "Memory Bus type", "Memory Bandwidth (GB/s)"], - ) - .properties(width=1213, height=750) - .interactive() - .add_params(bw_selection) -) - config_default = { "df": df, "x": "Launch:T", @@ -571,6 +543,7 @@ def merge(df, dst, src, replaceNoWithNaN=False, delete=True): "tooltip": [ "Memory Bus type", "Memory Bandwidth (GB/s)", + "Memory Bus width (bit)", ], }, "bus": { @@ -579,6 +552,16 @@ def merge(df, dst, src, replaceNoWithNaN=False, delete=True): "color": "Memory Bus type:N", "tooltip": ["Memory Bus type", "Memory Bus width (bit)"], }, + "bwpin": { + "title": "Memory Bandwidth per Pin over Time", + "y": "Memory Bandwidth per Pin (GB/s):Q", + "color": "Memory Bus type:N", + "tooltip": [ + "Memory Bus type", + "Memory Bandwidth (GB/s)", + "Memory Bus width (bit)", + ], + }, "pr": { "title": "Processing Power over Time", "df": pd.melt( diff --git a/plots/Arithmetic Intensity over Time.html b/plots/Arithmetic Intensity over Time.html index 5af7d46..7979136 100644 --- a/plots/Arithmetic Intensity over Time.html +++ b/plots/Arithmetic Intensity over Time.html @@ -2,13 +2,13 @@
@@ -16,10 +16,10 @@ - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + \ No newline at end of file diff --git a/plots/Memory Bandwidth per Pin over Time.pdf b/plots/Memory Bandwidth per Pin over Time.pdf new file mode 100644 index 0000000..1aa1dfe Binary files /dev/null and b/plots/Memory Bandwidth per Pin over Time.pdf differ diff --git a/plots/Memory Bus Width over Time.html b/plots/Memory Bus Width over Time.html index 193c02c..cee2218 100644 --- a/plots/Memory Bus Width over Time.html +++ b/plots/Memory Bus Width over Time.html @@ -2,13 +2,13 @@ @@ -16,10 +16,10 @@ - + - + - + - + - + - + - + - + - +