fix index 3
Browse files- frontend/index.html +34 -12
frontend/index.html
CHANGED
|
@@ -852,6 +852,10 @@
|
|
| 852 |
background: var(--bg);
|
| 853 |
}
|
| 854 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 855 |
@media (max-width: 780px) {
|
| 856 |
.dg {
|
| 857 |
grid-template-columns: 1fr;
|
|
@@ -903,24 +907,28 @@
|
|
| 903 |
font-size: 12px;
|
| 904 |
line-height: 1.7;
|
| 905 |
overflow: auto;
|
| 906 |
-
max-height:
|
| 907 |
-
white-space: pre;
|
|
|
|
|
|
|
|
|
|
| 908 |
color: var(--t2);
|
| 909 |
}
|
| 910 |
|
| 911 |
.dlo {
|
| 912 |
-
background: rgba(255, 51, 68, 0.
|
| 913 |
color: var(--red);
|
| 914 |
-
text-decoration: line-through;
|
| 915 |
display: block;
|
| 916 |
-
|
|
|
|
| 917 |
}
|
| 918 |
|
| 919 |
.dln {
|
| 920 |
-
background: rgba(0, 255, 136, 0.
|
| 921 |
color: var(--green);
|
| 922 |
display: block;
|
| 923 |
-
|
|
|
|
| 924 |
}
|
| 925 |
|
| 926 |
/* Loading Skeleton */
|
|
@@ -1475,9 +1483,6 @@ __global__ void kernel(float* A, float* B, int N) {
|
|
| 1475 |
|
| 1476 |
function rDiff(o, n) {
|
| 1477 |
if (!o || !n) return;
|
| 1478 |
-
const oe = document.getElementById('d-o'), ne = document.getElementById('d-n');
|
| 1479 |
-
if (oe && oe.innerHTML && ne && ne.innerHTML) return; // Already rendered
|
| 1480 |
-
|
| 1481 |
document.getElementById('t-diff').innerHTML = `<div class="dg">
|
| 1482 |
<div class="dfs"><div class="dfh"><span class="dft cu">CUDA</span> Original Source</div><pre class="dfp" id="d-o"></pre></div>
|
| 1483 |
<div class="dfs"><div class="dfh"><span class="dft ro">ROCm</span> Optimized HIP</div><pre class="dfp" id="d-n"></pre></div>
|
|
@@ -1490,8 +1495,25 @@ __global__ void kernel(float* A, float* B, int N) {
|
|
| 1490 |
oH += `<span class="${c ? 'dlo' : ''}">${esc(a)}\n</span>`;
|
| 1491 |
nH += `<span class="${c ? 'dln' : ''}">${esc(b)}\n</span>`;
|
| 1492 |
}
|
| 1493 |
-
document.getElementById('d-o')
|
| 1494 |
-
document.getElementById('d-n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1495 |
}
|
| 1496 |
|
| 1497 |
function sTimer() { S.iv = setInterval(() => { document.getElementById('pt').textContent = ((Date.now() - S.t0) / 1000).toFixed(1) + 's' }, 100) }
|
|
|
|
| 852 |
background: var(--bg);
|
| 853 |
}
|
| 854 |
|
| 855 |
+
.dfs {
|
| 856 |
+
min-width: 0;
|
| 857 |
+
}
|
| 858 |
+
|
| 859 |
@media (max-width: 780px) {
|
| 860 |
.dg {
|
| 861 |
grid-template-columns: 1fr;
|
|
|
|
| 907 |
font-size: 12px;
|
| 908 |
line-height: 1.7;
|
| 909 |
overflow: auto;
|
| 910 |
+
max-height: min(70vh, 760px);
|
| 911 |
+
white-space: pre-wrap;
|
| 912 |
+
overflow-wrap: anywhere;
|
| 913 |
+
word-break: break-word;
|
| 914 |
+
tab-size: 2;
|
| 915 |
color: var(--t2);
|
| 916 |
}
|
| 917 |
|
| 918 |
.dlo {
|
| 919 |
+
background: rgba(255, 51, 68, 0.08);
|
| 920 |
color: var(--red);
|
|
|
|
| 921 |
display: block;
|
| 922 |
+
border-left: 2px solid rgba(255, 51, 68, 0.45);
|
| 923 |
+
padding-left: 8px;
|
| 924 |
}
|
| 925 |
|
| 926 |
.dln {
|
| 927 |
+
background: rgba(0, 255, 136, 0.08);
|
| 928 |
color: var(--green);
|
| 929 |
display: block;
|
| 930 |
+
border-left: 2px solid rgba(0, 255, 136, 0.45);
|
| 931 |
+
padding-left: 8px;
|
| 932 |
}
|
| 933 |
|
| 934 |
/* Loading Skeleton */
|
|
|
|
| 1483 |
|
| 1484 |
function rDiff(o, n) {
|
| 1485 |
if (!o || !n) return;
|
|
|
|
|
|
|
|
|
|
| 1486 |
document.getElementById('t-diff').innerHTML = `<div class="dg">
|
| 1487 |
<div class="dfs"><div class="dfh"><span class="dft cu">CUDA</span> Original Source</div><pre class="dfp" id="d-o"></pre></div>
|
| 1488 |
<div class="dfs"><div class="dfh"><span class="dft ro">ROCm</span> Optimized HIP</div><pre class="dfp" id="d-n"></pre></div>
|
|
|
|
| 1495 |
oH += `<span class="${c ? 'dlo' : ''}">${esc(a)}\n</span>`;
|
| 1496 |
nH += `<span class="${c ? 'dln' : ''}">${esc(b)}\n</span>`;
|
| 1497 |
}
|
| 1498 |
+
const left = document.getElementById('d-o');
|
| 1499 |
+
const right = document.getElementById('d-n');
|
| 1500 |
+
left.innerHTML = oH;
|
| 1501 |
+
right.innerHTML = nH;
|
| 1502 |
+
|
| 1503 |
+
// Keep both panes aligned while scrolling for easier comparison.
|
| 1504 |
+
let syncing = false;
|
| 1505 |
+
left.addEventListener('scroll', () => {
|
| 1506 |
+
if (syncing) return;
|
| 1507 |
+
syncing = true;
|
| 1508 |
+
right.scrollTop = left.scrollTop;
|
| 1509 |
+
syncing = false;
|
| 1510 |
+
}, { passive: true });
|
| 1511 |
+
right.addEventListener('scroll', () => {
|
| 1512 |
+
if (syncing) return;
|
| 1513 |
+
syncing = true;
|
| 1514 |
+
left.scrollTop = right.scrollTop;
|
| 1515 |
+
syncing = false;
|
| 1516 |
+
}, { passive: true });
|
| 1517 |
}
|
| 1518 |
|
| 1519 |
function sTimer() { S.iv = setInterval(() => { document.getElementById('pt').textContent = ((Date.now() - S.t0) / 1000).toFixed(1) + 's' }, 100) }
|