Manoj Acharya commited on
Commit
872d649
·
1 Parent(s): f4247be

Nearest B or M

Browse files
Files changed (1) hide show
  1. app.py +6 -6
app.py CHANGED
@@ -8,7 +8,7 @@ def format_params(params):
8
  return str(params)
9
 
10
  def calculate_training_memory(params, precision, batch_size, seq_length, num_heads, head_dim, num_layers):
11
- bytes_per_param = 2 if precision in ["FP16", "BF16"] else 4
12
 
13
  # Model Weights
14
  model_memory = params * bytes_per_param
@@ -28,7 +28,7 @@ def calculate_training_memory(params, precision, batch_size, seq_length, num_hea
28
  return f"Model Weights: {model_memory / 1e9:.2f} GB\nOptimizer: {optimizer_memory / 1e9:.2f} GB\nGradients: {gradient_memory / 1e9:.2f} GB\nActivation Memory: {activation_memory / 1e9:.2f} GB\nTotal Training Memory: {total_memory / 1e9:.2f} GB"
29
 
30
  def calculate_inference_memory(params, precision, batch_size, seq_length, num_heads, head_dim, num_layers):
31
- bytes_per_param = 2 if precision in ["FP16", "BF16"] else 4
32
 
33
  # Model Weights
34
  model_memory = params * bytes_per_param
@@ -42,7 +42,7 @@ def calculate_inference_memory(params, precision, batch_size, seq_length, num_he
42
  return f"Model Weights: {model_memory / 1e9:.2f} GB\nKV Cache: {kv_cache_memory / 1e9:.2f} GB\nTotal Inference Memory: {total_memory / 1e9:.2f} GB"
43
 
44
  def calculate_kv_cache(batch_size, seq_length, num_heads, head_dim, num_layers, precision):
45
- bytes_per_param = 2 if precision in ["FP16", "BF16"] else 4
46
 
47
  # KV Cache Calculation
48
  kv_cache_memory = batch_size * seq_length * num_heads * head_dim * 2 * num_layers * bytes_per_param
@@ -56,7 +56,7 @@ with gr.Blocks() as app:
56
  with gr.Tab("Training Memory Calculation"):
57
  with gr.Row():
58
  params = gr.Number(label="Number of Parameters (e.g., 175B = 175e9)", value=175e9)
59
- precision = gr.Radio(["FP16/BF16", "FP32"], label="Precision", value="FP16")
60
  with gr.Row():
61
  batch_size = gr.Number(label="Batch Size", value=1)
62
  seq_length = gr.Number(label="Sequence Length", value=2048)
@@ -71,7 +71,7 @@ with gr.Blocks() as app:
71
  with gr.Tab("Inference Memory Calculation"):
72
  with gr.Row():
73
  params_inf = gr.Number(label="Number of Parameters (e.g., 175B = 175e9)", value=175e9)
74
- precision_inf = gr.Radio(["FP16/BF16", "FP32"], label="Precision", value="FP16")
75
  with gr.Row():
76
  batch_size_inf = gr.Number(label="Batch Size", value=1)
77
  seq_length_inf = gr.Number(label="Sequence Length", value=2048)
@@ -91,7 +91,7 @@ with gr.Blocks() as app:
91
  num_heads_kv = gr.Number(label="Number of Attention Heads", value=96)
92
  head_dim_kv = gr.Number(label="Head Dimension", value=128)
93
  num_layers_kv = gr.Number(label="Number of Layers", value=96)
94
- precision_kv = gr.Radio(["FP16/BF16", "FP32"], label="Precision", value="FP16")
95
  kv_button = gr.Button("Calculate KV Cache Memory")
96
  kv_output = gr.Textbox(label="KV Cache Memory Usage")
97
  kv_button.click(calculate_kv_cache, [batch_size_kv, seq_length_kv, num_heads_kv, head_dim_kv, num_layers_kv, precision_kv], kv_output)
 
8
  return str(params)
9
 
10
  def calculate_training_memory(params, precision, batch_size, seq_length, num_heads, head_dim, num_layers):
11
+ bytes_per_param = 2 if precision in ["FP16/BF16", "BF16"] else 4
12
 
13
  # Model Weights
14
  model_memory = params * bytes_per_param
 
28
  return f"Model Weights: {model_memory / 1e9:.2f} GB\nOptimizer: {optimizer_memory / 1e9:.2f} GB\nGradients: {gradient_memory / 1e9:.2f} GB\nActivation Memory: {activation_memory / 1e9:.2f} GB\nTotal Training Memory: {total_memory / 1e9:.2f} GB"
29
 
30
  def calculate_inference_memory(params, precision, batch_size, seq_length, num_heads, head_dim, num_layers):
31
+ bytes_per_param = 2 if precision in ["FP16/BF16", "BF16"] else 4
32
 
33
  # Model Weights
34
  model_memory = params * bytes_per_param
 
42
  return f"Model Weights: {model_memory / 1e9:.2f} GB\nKV Cache: {kv_cache_memory / 1e9:.2f} GB\nTotal Inference Memory: {total_memory / 1e9:.2f} GB"
43
 
44
  def calculate_kv_cache(batch_size, seq_length, num_heads, head_dim, num_layers, precision):
45
+ bytes_per_param = 2 if precision in ["FP16/BF16", "BF16"] else 4
46
 
47
  # KV Cache Calculation
48
  kv_cache_memory = batch_size * seq_length * num_heads * head_dim * 2 * num_layers * bytes_per_param
 
56
  with gr.Tab("Training Memory Calculation"):
57
  with gr.Row():
58
  params = gr.Number(label="Number of Parameters (e.g., 175B = 175e9)", value=175e9)
59
+ precision = gr.Radio(["FP16/BF16", "FP32"], label="Precision", value="FP16/BF16")
60
  with gr.Row():
61
  batch_size = gr.Number(label="Batch Size", value=1)
62
  seq_length = gr.Number(label="Sequence Length", value=2048)
 
71
  with gr.Tab("Inference Memory Calculation"):
72
  with gr.Row():
73
  params_inf = gr.Number(label="Number of Parameters (e.g., 175B = 175e9)", value=175e9)
74
+ precision_inf = gr.Radio(["FP16/BF16", "FP32"], label="Precision", value="FP16/BF16")
75
  with gr.Row():
76
  batch_size_inf = gr.Number(label="Batch Size", value=1)
77
  seq_length_inf = gr.Number(label="Sequence Length", value=2048)
 
91
  num_heads_kv = gr.Number(label="Number of Attention Heads", value=96)
92
  head_dim_kv = gr.Number(label="Head Dimension", value=128)
93
  num_layers_kv = gr.Number(label="Number of Layers", value=96)
94
+ precision_kv = gr.Radio(["FP16/BF16", "FP32"], label="Precision", value="FP16/BF16")
95
  kv_button = gr.Button("Calculate KV Cache Memory")
96
  kv_output = gr.Textbox(label="KV Cache Memory Usage")
97
  kv_button.click(calculate_kv_cache, [batch_size_kv, seq_length_kv, num_heads_kv, head_dim_kv, num_layers_kv, precision_kv], kv_output)