fix
Browse files- dist/index.html +4 -3
- dist/main.bundle.js +0 -0
- dist/main.bundle.js.map +0 -0
- src/index.html +4 -3
- src/memory.js +13 -6
dist/index.html
CHANGED
|
@@ -157,9 +157,10 @@
|
|
| 157 |
<div class="row">
|
| 158 |
<label for="zero">Zero:</label>
|
| 159 |
<select id="zero" name="zero">
|
| 160 |
-
<option value="
|
| 161 |
-
<option value="
|
| 162 |
-
<option value="
|
|
|
|
| 163 |
</select>
|
| 164 |
<span></span> <!-- Empty span to maintain grid alignment -->
|
| 165 |
</div>
|
|
|
|
| 157 |
<div class="row">
|
| 158 |
<label for="zero">Zero:</label>
|
| 159 |
<select id="zero" name="zero">
|
| 160 |
+
<option value="0">0</option>
|
| 161 |
+
<option value="1">1</option>
|
| 162 |
+
<option value="2">2</option>
|
| 163 |
+
<option value="3">3</option>
|
| 164 |
</select>
|
| 165 |
<span></span> <!-- Empty span to maintain grid alignment -->
|
| 166 |
</div>
|
dist/main.bundle.js
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
dist/main.bundle.js.map
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
src/index.html
CHANGED
|
@@ -157,9 +157,10 @@
|
|
| 157 |
<div class="row">
|
| 158 |
<label for="zero">Zero:</label>
|
| 159 |
<select id="zero" name="zero">
|
| 160 |
-
<option value="
|
| 161 |
-
<option value="
|
| 162 |
-
<option value="
|
|
|
|
| 163 |
</select>
|
| 164 |
<span></span> <!-- Empty span to maintain grid alignment -->
|
| 165 |
</div>
|
|
|
|
| 157 |
<div class="row">
|
| 158 |
<label for="zero">Zero:</label>
|
| 159 |
<select id="zero" name="zero">
|
| 160 |
+
<option value="0">0</option>
|
| 161 |
+
<option value="1">1</option>
|
| 162 |
+
<option value="2">2</option>
|
| 163 |
+
<option value="3">3</option>
|
| 164 |
</select>
|
| 165 |
<span></span> <!-- Empty span to maintain grid alignment -->
|
| 166 |
</div>
|
src/memory.js
CHANGED
|
@@ -89,14 +89,14 @@ export function activationMemory(
|
|
| 89 |
return data;
|
| 90 |
}
|
| 91 |
|
| 92 |
-
export function paramGradsOpt(h, L, s, v, k = 8, dp = 1, zero =
|
| 93 |
// h, # hidden dimension size
|
| 94 |
// L, # number of layers
|
| 95 |
// s, # sequence length
|
| 96 |
// v, # vocab size
|
| 97 |
// k=8, # parameters for optimizer (Adam: 8 = 4 bytes moments + 4 bytes variance)
|
| 98 |
// dp=1, # data parallelism
|
| 99 |
-
// zero =
|
| 100 |
// mixed=True # mixed precision training
|
| 101 |
console.log('paramGradsOpt called with:', { h, L, s, v, k, dp, zero, mixed });
|
| 102 |
const emb = h * (v + s);
|
|
@@ -113,9 +113,9 @@ export function paramGradsOpt(h, L, s, v, k = 8, dp = 1, zero = "Optimizer", mix
|
|
| 113 |
const data = {
|
| 114 |
name: "ParametersGradientOps",
|
| 115 |
children: [
|
| 116 |
-
{ name: 'Parameters', value: zero
|
| 117 |
-
{ name: 'Gradients', value: zero
|
| 118 |
-
{ name: 'OptimizerAverages', value: zero
|
| 119 |
]
|
| 120 |
};
|
| 121 |
console.log('paramGradsOpt result:', data);
|
|
@@ -319,7 +319,7 @@ function setPresetValues(preset) {
|
|
| 319 |
}
|
| 320 |
});
|
| 321 |
|
| 322 |
-
updateGraph();
|
| 323 |
}
|
| 324 |
|
| 325 |
function syncSliderAndInput(sliderId, inputId) {
|
|
@@ -371,6 +371,13 @@ export const init_memory_plot = function () {
|
|
| 371 |
console.warn('FF Activation select not found');
|
| 372 |
}
|
| 373 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 374 |
const mixedCheckbox = document.getElementById('mixed');
|
| 375 |
if (mixedCheckbox) {
|
| 376 |
mixedCheckbox.addEventListener('change', updateGraph);
|
|
|
|
| 89 |
return data;
|
| 90 |
}
|
| 91 |
|
| 92 |
+
export function paramGradsOpt(h, L, s, v, k = 8, dp = 1, zero = 0, mixed = true) {
|
| 93 |
// h, # hidden dimension size
|
| 94 |
// L, # number of layers
|
| 95 |
// s, # sequence length
|
| 96 |
// v, # vocab size
|
| 97 |
// k=8, # parameters for optimizer (Adam: 8 = 4 bytes moments + 4 bytes variance)
|
| 98 |
// dp=1, # data parallelism
|
| 99 |
+
// zero = 0, 1, 2, 3, # zero data parallelism
|
| 100 |
// mixed=True # mixed precision training
|
| 101 |
console.log('paramGradsOpt called with:', { h, L, s, v, k, dp, zero, mixed });
|
| 102 |
const emb = h * (v + s);
|
|
|
|
| 113 |
const data = {
|
| 114 |
name: "ParametersGradientOps",
|
| 115 |
children: [
|
| 116 |
+
{ name: 'Parameters', value: zero >= 3 ? bytesPerParameter * n / dp : bytesPerParameter * n },
|
| 117 |
+
{ name: 'Gradients', value: zero >= 2 ? bytesPerParameter * n / dp : bytesPerParameter * n },
|
| 118 |
+
{ name: 'OptimizerAverages', value: zero >= 1 ? k * n / dp : k * n }
|
| 119 |
]
|
| 120 |
};
|
| 121 |
console.log('paramGradsOpt result:', data);
|
|
|
|
| 319 |
}
|
| 320 |
});
|
| 321 |
|
| 322 |
+
updateGraph(); // Add this line to ensure the graph updates when a preset is selected
|
| 323 |
}
|
| 324 |
|
| 325 |
function syncSliderAndInput(sliderId, inputId) {
|
|
|
|
| 371 |
console.warn('FF Activation select not found');
|
| 372 |
}
|
| 373 |
|
| 374 |
+
const zeroSelect = document.getElementById('zero');
|
| 375 |
+
if (zeroSelect) {
|
| 376 |
+
zeroSelect.addEventListener('change', updateGraph);
|
| 377 |
+
} else {
|
| 378 |
+
console.warn('Zero select not found');
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
const mixedCheckbox = document.getElementById('mixed');
|
| 382 |
if (mixedCheckbox) {
|
| 383 |
mixedCheckbox.addEventListener('change', updateGraph);
|