DEV Community

Cover image for NVIDIA GPUs Performace Comparison (value per 1$)
norflin
norflin

Posted on

NVIDIA GPUs Performace Comparison (value per 1$)

Data Source
Code
Result

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import dataframe_image as dfi

plt.rcParams["figure.dpi"] = 300
plt.rcParams["savefig.dpi"] = 300
plt.rcParams["figure.figsize"] = [12, 5]

df = pd.DataFrame()
df['name'] = ['GeForce RTX 4090', 'GeForce RTX 4080', 'GeForce RTX 4070 Ti', 'GeForce RTX 4070', 'GeForce RTX 3090 Ti', 'GeForce RTX 3090', 'GeForce RTX 3080 Ti', 'GeForce RTX 3080', 'GeForce RTX 3070 Ti', 'GeForce RTX 3070', 'GeForce RTX 3060 Ti', 'GeForce RTX 3060']
df['release_date'] = ['October 12, 2022', 'November 16, 2022', 'January 5, 2023', 'April 13, 2023', 'March 29, 2022', 'September 24, 2020', 'June 3, 2021', 'January 27, 2022', 'June 10, 2021', 'October 29, 2020', 'October 27, 2022', 'September 1, 2021']
df['price'] = [2007.58, 1441.61, 1226.36, 875.47, 1368.88, 1328.24, 1177.12, 900.77, 910.68, 591.89, 610.55, 511.45]
df['tdp_watts'] = [450, 320, 285, 200, 450, 350, 350, 350, 290, 220, 200, 170]
df['ray_traycing_tflops'] = [191, 112.7, 92.7, None, 79.9, 71.1, 68.2, 61.3, 43.5, 40.6, 32.4, 25]
df['tensor_compute_tflops'] = [292, 172, 142, None, 269.1, 235.08, 228.6, 180.6, 154.8, 141.31, 109.7, 75.7]
df['half_precision_tflops'] = [73.1, 43.0, 35.5, 22.6, 33.5, 29.38, 28.06, 22.6, 19.35, 17.66, 13.70, 9.46]
df['double_precision_tflops'] = [1.142, 0.672, 0.554, 0.353, 0.524, 0.459, 0.438, 0.353, 0.302, 0.276, 0.214, 0.148]
df['single_precision_tflops'] = [73.1, 43.0, 35.5, 22.6, 33.5, 29.28, 28.57, 22.6, 19.35, 17.66, 13.72, 9.46]
df['fillrate_gts'] = [1290.2, 761.5, 626.4, 455.4, 524.2, 457.6, 438.5, 352.8, 302.36, 276.0, 214.3, 147.8]
df['fillrate_gps'] = [443.5, 280.6, 208.8, 158.4, 174.7, 156.2, 153.5, 131.0, 151.18, 144.0, 112.8, 63.4]
df['clock_speed_mhz'] = [2230, 2210, 2310, 1920, 1560, 1395, 1365, 1260, 1575, 1500, 1410, 1320]

for column in df.columns[3:]:
    df[column] = df['price'] / df[column]

df['tdp_watts'] = df['tdp_watts'] * -1
df = df.sort_values(by=['release_date'], ascending=True)
df['mean'] = df[df.columns[3:]].mean(axis=1)

def pretty_panda(x):
    return (df.style
                .background_gradient()
                .set_properties(**{'font-size': '10pt'})
                .format(precision=2)
                .set_caption("NVIDIA GPUs Performace Comparison (value per 1$)")
                .set_table_styles([
                    {'selector': 'thead', 'props': 'text-transform: uppercase;'},
                    {'selector': 'caption', 'props': 'font-size: 20px'}
                ]))

df = pretty_panda(df)
df
Enter fullscreen mode Exit fullscreen mode

Top comments (0)