From 66195034f2a0f84ef75d460e50d3af649cbc982f Mon Sep 17 00:00:00 2001 From: John Owens Date: Tue, 23 Apr 2024 08:38:35 -0700 Subject: [PATCH] cleaned up bus width calculation, added bw-per-pin plot --- README.md | 1 + nvperf.py | 51 ++++++------------ plots/Arithmetic Intensity over Time.html | 14 ++--- ...hmetic Intensity vs. Memory Bandwidth.html | 14 ++--- ...c Intensity vs. Peak Processing Power.html | 14 ++--- plots/Clock rate over Time.html | 14 ++--- plots/Die Size over Time.html | 14 ++--- plots/Feature size over Time.html | 14 ++--- .../GFLOPS per Area vs. GFLOPS per Watt.html | 14 ++--- plots/GFLOPS per Dollar over Time.html | 14 ++--- plots/GFLOPS per Watt over Time.html | 14 ++--- .../GFLOPS per Watt vs. Memory Bandwidth.html | 14 ++--- ...PS per Watt vs. Peak Processing Power.html | 14 ++--- plots/Memory Bandwidth over Time.html | 14 ++--- plots/Memory Bandwidth over Time.pdf | Bin 64263 -> 63869 bytes plots/Memory Bandwidth per Pin over Time.html | 40 ++++++++++++++ plots/Memory Bandwidth per Pin over Time.pdf | Bin 0 -> 62565 bytes plots/Memory Bus Width over Time.html | 14 ++--- plots/Memory Bus Width over Time.pdf | Bin 71186 -> 73557 bytes plots/Power density over Time.html | 14 ++--- plots/Power over Time.html | 14 ++--- plots/Processing Power over Time.html | 14 ++--- plots/Release price over Time.html | 14 ++--- plots/SM count over Time.html | 14 ++--- plots/Shader count over Time.html | 14 ++--- plots/Transistor Count over Time.html | 14 ++--- plots/Transistor density over Time.html | 14 ++--- 27 files changed, 205 insertions(+), 181 deletions(-) create mode 100644 plots/Memory Bandwidth per Pin over Time.html create mode 100644 plots/Memory Bandwidth per Pin over Time.pdf 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 0000000000000000000000000000000000000000..1aa1dfef101f16cf75cde8f6ca9541af8d9f6118 GIT binary patch literal 62565 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 EA4M|6%>V!Z literal 0 HcmV?d00001 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 @@ -
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+