From 025a4f27e39c85e3bf86d6533884767da4d7d08b Mon Sep 17 00:00:00 2001 From: Daniyal Khan Date: Wed, 25 Sep 2024 02:35:01 -0400 Subject: [PATCH] Initial changes for updated triton-viz --- examples/3dims.py | 99 +++ setup.py | 7 +- triton_viz/__init__.py | 4 +- triton_viz/data.py | 14 +- triton_viz/draw.py | 564 +++++------------- triton_viz/interface.py | 292 ++++++--- triton_viz/interpreter.py | 49 +- triton_viz/static/gridblock.js | 241 ++++++++ .../images/accelerator-memory-hierarchy.png | Bin 0 -> 274965 bytes .../static/images/tensor-slicing-diagram.png | Bin 0 -> 230966 bytes triton_viz/static/infoPopup.js | 211 +++++++ triton_viz/static/load.js | 221 +++++++ triton_viz/static/load_utils.js | 200 +++++++ triton_viz/static/matmul.js | 360 +++++++++++ triton_viz/static/store-utils.js | 360 +++++++++++ triton_viz/static/store.js | 221 +++++++ triton_viz/static/visualization.js | 389 ++++++++++++ triton_viz/templates/index.html | 47 ++ triton_viz/tooltip.py | 7 +- triton_viz/trace.py | 5 + 20 files changed, 2761 insertions(+), 530 deletions(-) create mode 100644 examples/3dims.py create mode 100644 triton_viz/static/gridblock.js create mode 100644 triton_viz/static/images/accelerator-memory-hierarchy.png create mode 100644 triton_viz/static/images/tensor-slicing-diagram.png create mode 100644 triton_viz/static/infoPopup.js create mode 100644 triton_viz/static/load.js create mode 100644 triton_viz/static/load_utils.js create mode 100644 triton_viz/static/matmul.js create mode 100644 triton_viz/static/store-utils.js create mode 100644 triton_viz/static/store.js create mode 100644 triton_viz/static/visualization.js create mode 100644 triton_viz/templates/index.html diff --git a/examples/3dims.py b/examples/3dims.py new file mode 100644 index 0000000..bfe766c --- /dev/null +++ b/examples/3dims.py @@ -0,0 +1,99 @@ +import torch +import triton +import triton.language as tl + + + +import triton_viz +BLOCK_SIZE_X = 32 +BLOCK_SIZE_Y = 8 +BLOCK_SIZE_Z = 4 + +@triton_viz.trace +@triton.jit +def add_3d_slices_kernel( + input_ptr1, input_ptr2, output_ptr, + stride_x, stride_y, stride_z, + slice_x, slice_y, slice_z, + BLOCK_SIZE_X: tl.constexpr, BLOCK_SIZE_Y: tl.constexpr, BLOCK_SIZE_Z: tl.constexpr +): + # Compute the 3D position in the output tensor + pid_x = tl.program_id(0) + pid_y = tl.program_id(1) + pid_z = tl.program_id(2) + + # Compute the starting position for this block + x_start = pid_x * BLOCK_SIZE_X + y_start = pid_y * BLOCK_SIZE_Y + z_start = pid_z * BLOCK_SIZE_Z + + # Compute offsets within the block + x_offsets = x_start + tl.arange(0, BLOCK_SIZE_X) + y_offsets = y_start + tl.arange(0, BLOCK_SIZE_Y) + z_offsets = z_start + tl.arange(0, BLOCK_SIZE_Z) + + # Create a mask to handle boundary conditions + mask = (x_offsets < slice_x) & (y_offsets < slice_y)[:, None] & (z_offsets < slice_z)[:, None, None] + + # Compute the input and output offsets + offsets = ( + z_offsets[:, None, None] * stride_z + + y_offsets[:, None] * stride_y + + x_offsets * stride_x + ) + + # Load input slices + slice1 = tl.load(input_ptr1 + offsets, mask=mask) + slice2 = tl.load(input_ptr2 + offsets, mask=mask) + + # Perform addition + result = slice1 + slice2 + + # Store the result + tl.store(output_ptr + offsets, result, mask=mask) + +def add_3d_slices(input1, input2, output): + # Get tensor shapes + slice_z, slice_y, slice_x = input1.shape + + # Compute strides + stride_z, stride_y, stride_x = input1.stride() + + # Determine grid size + grid = ( + triton.cdiv(slice_x, BLOCK_SIZE_X), + triton.cdiv(slice_y, BLOCK_SIZE_Y), + triton.cdiv(slice_z, BLOCK_SIZE_Z) + ) + + # Launch kernel + add_3d_slices_kernel[grid]( + input1, input2, output, + stride_x, stride_y, stride_z, + slice_x, slice_y, slice_z, + BLOCK_SIZE_X=BLOCK_SIZE_X, + BLOCK_SIZE_Y=BLOCK_SIZE_Y, + BLOCK_SIZE_Z=BLOCK_SIZE_Z + ) + +if __name__ == "__main__": + # Set random seed for reproducibility + torch.manual_seed(0) + + # Create example input tensor + input1 = torch.randn(16, 16, 32, device='cpu') + input2 = torch.randn(16, 16, 32, device='cpu') + output = torch.empty_like(input1) + + # Call the kernel + add_3d_slices(input1, input2, output) + triton_viz.launch() + + # Verify the result + expected_output = input1 + input2 + assert torch.allclose(output, expected_output), "Kernel output does not match expected result" + + + + + diff --git a/setup.py b/setup.py index 6898fed..0ea16c3 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="triton-viz", - version="0.1", + version="0.2", packages=find_packages(), description="A visualization tool for Triton", author="Deep Learning Profiling Tools Team", @@ -11,10 +11,11 @@ install_requires=[ "setuptools", "triton", - "gradio", - "chalk-diagrams @ git+https://github.com/chalk-diagrams/chalk.git", + "flask", "pyarrow", "pre-commit", "pytest", + "flask_cloudflared", + "requests", ], ) diff --git a/triton_viz/__init__.py b/triton_viz/__init__.py index 737dd36..7c5bab8 100644 --- a/triton_viz/__init__.py +++ b/triton_viz/__init__.py @@ -1,5 +1,5 @@ from .trace import trace, dump, sample -from .draw import collect_grid, draw_record +from .draw import collect_grid from .interface import launch -__all__ = ["trace", "launch", "dump", "sample", "collect_grid", "draw_record"] +__all__ = ["trace", "launch", "dump", "sample", "collect_grid"] diff --git a/triton_viz/data.py b/triton_viz/data.py index 819a398..ad9678c 100644 --- a/triton_viz/data.py +++ b/triton_viz/data.py @@ -1,9 +1,11 @@ from dataclasses import dataclass, field -from typing import List, Tuple, Any +from typing import List, Tuple, Any, Dict import traceback import numpy.typing as npt import numpy as np +import torch + @dataclass class Op: @@ -73,6 +75,15 @@ class Dot(Op): input_shape: Tuple other_shape: Tuple output_shape: Tuple + input_data: List[List[float]] + other_data: List[List[float]] + intermediate_results: Dict[Tuple[int, int], float] = field( + default_factory=dict + ) # Only storing the result now + + def update_intermediate(self, row: int, col: int, result: float): + # Store only the result as a float + self.intermediate_results[(row, col)] = result @dataclass @@ -91,6 +102,7 @@ class Tensor: stride: Tuple shape: Tuple element_size: int + data: torch.Tensor @dataclass diff --git a/triton_viz/draw.py b/triton_viz/draw.py index fda62c0..2de3c52 100644 --- a/triton_viz/draw.py +++ b/triton_viz/draw.py @@ -1,69 +1,10 @@ -from colour import Color -from triton_viz.data import ( - Tensor, - Grid, - Store, - Load, - Op, - MakeRange, - Reduce, - Dot, -) -from .interpreter import record_builder +from triton_viz.data import Tensor, Grid, Store, Load, Dot, ExpandDims +import uuid import numpy as np -import numpy.typing as npt -import planar -import math -import chalk -from typing import Tuple, Union, Optional, List, Dict -from chalk import Diagram, rectangle, text, hcat, vcat, empty, Path, Trail, V2, concat -from dataclasses import dataclass -from numpy.typing import ArrayLike -import sys - -sys.setrecursionlimit(100000) - - -planar.EPSILON = 0.0 -chalk.set_svg_draw_height(500) -BG = Color("white") -WHITE = Color("white") -DEFAULT = Color("grey") -BLACK = Color("black") -GREY = Color("grey") -palette = [ - "#f29f05", - "#f25c05", - "#d6568c", - "#4d8584", - "#a62f03", - "#400d01", - "#274001", - "#828a00", -] -ACTIVE = [Color(p) for p in palette] - -MRATIO = 1 / 3 - - -# Generic render helpers - - -def box(d: Diagram, width: float, height: float, outer=0.2) -> Diagram: - "Put diagram in a box of shape height, width" - h, w = d.get_envelope().height, d.get_envelope().width - m = max(h, w) - back = rectangle(outer + m, outer + m).line_width(0).fill_color(BG).center_xy() - d = (back + d.center_xy()).with_envelope(back) - return d.scale_x(width / m).scale_y(height / m) - - -def reshape(d: Diagram) -> Diagram: - "Use log-scale if ratio is too sharp" - h, w = d.get_envelope().height, d.get_envelope().width - if (h / w > MRATIO) or (w / h > MRATIO): - d = d.scale_y(math.log(h + 1, 2) / h).scale_x(math.log(w + 1, 2) / w) - return d +import torch +from .interpreter import record_builder + +from typing import Tuple, List def collect_grid(): @@ -96,141 +37,37 @@ def collect_launch(launch): return all_grids, tensor_table, failures -def draw_record(program_record, tensor_table, output): - return draw_launch(program_record, tensor_table, output) - - -def draw_launch(program_records, tensor_table, base) -> Diagram: - def draw(x): - "Dispatch" - if isinstance(x, Tensor): - return draw_tensor(x) - if isinstance(x, Grid): - return draw_grid(x) - if isinstance(x, Store): - return draw_store(x, tensor_table) - if isinstance(x, Load): - return draw_load(x, tensor_table) - if isinstance(x, Op): - return draw_op(x) - if isinstance(x, MakeRange): - return draw_make_range(x) - if isinstance(x, Reduce): - return draw_reduce(x) - if isinstance(x, Dot): - return None # draw_dot(x) - - def draw_record(x): - "Render one record" - y = draw(x) - if y is None: - return empty() - - return (chalk.vstrut(0.2) / y).center_xy() - - records = [] - for r in program_records: - dr = draw_record(r) - # env = dr.get_envelope() - # dr = dr.center_xy().with_envelope(rectangle(env.width, env.height).center_xy()) - records.append(dr) - - dr = vcat(records) - dr = dr.center_xy() - env = dr.get_envelope() - dr = rectangle(env.width + 1, env.height + 1).fill_color(BG).center_xy() + dr - dr.render_svg(base, 2500) - return env.width, env.height - - -def delinearize(shape: Tuple, x: npt.NDArray, dtype, mask) -> List[npt.NDArray]: - if len(shape) == 1: - shape = (1, 1, shape[0]) - x = x.copy() // (dtype.element_ty.primitive_bitwidth // 8) - vals = [] - for s in list(reversed(shape[1:])) + [10000]: - vals.append(((x % s) * mask - (1 - mask)).ravel()) - x = x // s - return vals - - -trail = Trail.from_offsets([V2(0, 1), V2(1, 0), V2(0, -1), V2(-1, 0)], closed=True) - - -def cover( - shape: Tuple, dtype, load: Tensor, mask: npt.NDArray, color: Color -) -> Diagram: - shape = make_3d(shape) - "Draw the values from load on top of the loading tensor" - x, y, z = delinearize(shape, load, dtype, mask) - return draw_tensor_3d(shape, z, y, x, color) - - -def pair_draw(x: Diagram, y: Diagram, command: str) -> Diagram: - "Draw two diagrams next to each other with a command in the middle." - return hcat([box(x, 3, 2.5), box(y, 3, 2.5)], 1).center_xy() + text( - command, 0.2 - ).fill_color(BLACK).line_width(0).translate(0, -1) - - -# Individual renderers - - -def draw_tensor(x: Tensor) -> Optional[Diagram]: - return None - - -def draw_grid(x: Grid) -> Optional[Diagram]: - return None - - -def draw_make_range(x: MakeRange) -> Optional[Diagram]: - return None - - -def draw_reduce(x: Reduce) -> Optional[Diagram]: - color = ACTIVE[0] - inp = draw_tensor_3d(make_3d(x.input_shape), None, None, None, color) - if x.index == 0 and len(x.input_shape) == 2: - inp = hcat( - [ - rectangle(0.1, inp.get_envelope().height) - .align_t() - .line_width(0) - .fill_color(BLACK), - inp, - ], - 0.5, - ) - else: - inp = vcat( - [ - rectangle(inp.get_envelope().width, 0.1) - .align_l() - .line_width(0) - .fill_color(BLACK), - inp, - ], - 0.5, - ) - out = draw_tensor_3d(x.output_shape, None, None, None, color) - return pair_draw(reshape(inp), reshape(out), x.op) +def extract_load_coords( + record: Load, global_tensor: Tensor +) -> Tuple[List[Tuple[float, float, float]], List[Tuple[float, float, float]]]: + # Extract coordinates for the global tensor + global_shape = make_3d(global_tensor.shape) + global_z, global_y, global_x = delinearized( + global_shape, + record.original_offsets, + global_tensor.dtype, + record.original_masks, + ) + global_coords = [ + (float(xi), float(yi), float(zi)) + for xi, yi, zi in zip(global_z, global_y, global_x) + if xi != -1 and yi != -1 and zi != -1 + ] -def draw_load(x, tensor_table) -> Optional[Diagram]: - inp, out = store_load(x, tensor_table) - out = reshape(out) - return pair_draw(inp, out, "load") + # Extract coordinates for the slice tensor + slice_shape = make_3d(record.shape) + slice_z, slice_y, slice_x = record.original_masks.reshape(*slice_shape).nonzero() + slice_coords = [ + (float(xi), float(yi), float(zi)) + for xi, yi, zi in zip(slice_x, slice_y, slice_z) + ] -def draw_store(x, tensor_table) -> Optional[Diagram]: - inp, out = store_load(x, tensor_table) - out = reshape(out) - return pair_draw(out, inp, "store") + return global_coords, slice_coords -def make_3d(shape): - "Make a 3d shape" +def make_3d(shape: Tuple[int, ...]): if len(shape) == 1: return (1, 1, shape[0]) if len(shape) == 2: @@ -238,233 +75,114 @@ def make_3d(shape): return shape -def store_load( - x: Union[Store, Load], tensor_table: Dict[int, Tuple[Tensor, int]] -) -> Tuple[Diagram, Diagram]: - tensor, tensor_id = tensor_table[x.ptr] - # inp = base_tensor(tensor.shape, DEFAULT) - color = ACTIVE[tensor_id] - invalid = x.invalid_access_masks.any() - if invalid: - color = Color("red") - inp = cover(tensor.shape, tensor.dtype, x.original_offsets, x.original_masks, color) - inp = reshape(inp) - s = make_3d(x.original_offsets.shape) - a, b, c = x.original_masks.reshape(*s).nonzero() - out = draw_tensor_3d(s, a, b, c, color) - return inp, out - - -def draw_op(x: Op) -> Optional[Diagram]: - return None - - -def draw_dot(x: Dot) -> Optional[Diagram]: - if x.input_shape == (1,): - return None - inp = draw_tensor_3d(x.input_shape[0], None, None, None) - # inp = reshape(base_tensor(x.input_shape[0], color=ACTIVE)) - # inp = add_whiskers(inp, x.input_shape[0]) - inp2 = draw_tensor_3d(x.input_shape[1], None, None, None) - # inp2 = reshape(base_tensor(x.input_shape[0], color=ACTIVE)) - # inp2 = add_whiskers(inp2, x.input_shape[0]) - out = draw_tensor_3d(x.output_shape, None, None, None) - # out = reshape(base_tensor(x.output_shape, color=ACTIVE)) - # out = add_whiskers(out, x.output_shape) - return hcat( - [box(inp, 1.5, 2), box(inp2, 1.5, 2), box(out, 1.5, 2)], 1 - ).center_xy() + text("dot", 0.2).fill_color(BLACK).line_width(0).translate(0, -1) - - -# For 3d - - -def lookAt(eye: ArrayLike, center: ArrayLike, up: ArrayLike): - "Python version of the haskell lookAt function in linear.projections" - f = (center - eye) / np.linalg.norm(center - eye) - s = np.cross(f, up) / np.linalg.norm(np.cross(f, up)) - u = np.cross(s, f) - return np.array([[*s, 0], [*u, 0], [*-f, 0], [0, 0, 0, 1]]) - - -def scale3(x, y, z): - return np.array([[x, 0, 0, 0], [0, y, 0, 0], [0, 0, z, 0], [0, 0, 0, 1]]) - - -@dataclass -class D3: - x: float - y: float - z: float - - def to_np(self): - return np.array([self.x, self.y, self.z]) - - -V3 = D3 - - -def homogeneous(trails: List[List[D3]]): - "Convert list of directions to a np.array of homogeneous coordinates" - return np.array([[[*o.to_np(), 1] for o in offsets] for offsets in trails]) - - -def cube(): - "3 faces of a cube drawn as offsets from the origin." - return homogeneous( - [ - [D3(*v) for v in offset] - for offset in [ - [(1, 0, 0), (0, 1, 0), (-1, 0, 0), (0, -1, 0)], - [(1, 0, 0), (0, 0, 1), (-1, 0, 0), (0, 0, -1)], - [(0, 0, 1), (0, 1, 0), (0, 0, -1), (0, -1, 0)], - ] - ] - ) - - -def to_trail(trail: ArrayLike, locations: ArrayLike): - return [ - ( - Path( - [ - Trail.from_offsets([V2(*v[:2]) for v in trail]) - .close() - .at(V2(*loc[:2])) - ] - ), - loc[2], - ) - for loc in locations - ] - - -def project(projection, shape3, positions): - p = homogeneous([positions for _ in range(shape3.shape[0])]) - locations = p @ projection.T - trails = shape3 @ projection.T - return [out for t, loc in zip(trails, locations) for out in to_trail(t, loc)] - - -def draw_tensor_3d(shape, a, b, c, color=WHITE): - shape = make_3d(shape) - - # Big Cube - s = scale3(*shape) - big_cube = cube() @ s.T - back = scale3(0, shape[1], shape[2]) - back_cube = cube() @ back.T - - # Isometric projection of tensor - projection = lookAt( - V3(-1.0, -0.3, -0.15).to_np(), - V3(0, 0, 0).to_np(), - V3(0, 1, 0).to_np(), - ) - outer = project(projection, big_cube, [V3(0, 0, 0)]) - outer2 = project(projection, back_cube, [V3(shape[0], 0, 0)]) - d = ( - concat([p.stroke().fill_color(GREY).fill_opacity(0.1) for p, _ in outer2]) - .line_width(0.005) - .line_color(GREY) - ) - d += ( - concat([p.stroke().fill_color(GREY).fill_opacity(0.05) for p, _ in outer]) - .line_width(0.01) - .line_color(BLACK) - ) - if a is not None: - out = group(a, b, c) - d2 = [ - (b, loc) - for i in range(len(out)) - for b, loc in make_cube(projection, out[i][0], out[i][1], color) - ] - d2.sort(key=lambda x: x[1], reverse=True) - d2 = concat([b.with_envelope(empty()) for b, _ in d2]) - d = d2.with_envelope(d) + d - return d - - -def lines(s): - "Draw lines to mimic a cube of cubes" - bs = [np.array([1, 0, 0]), np.array([0, 1, 0]), np.array([0, 0, 1])] - return [ - homogeneous( - [ - [D3(*p) for _ in range(s[i]) for p in [a / s[i], b, -b]] - for b in bs - if not np.all(a == b) - ] +def delinearized( + shape: Tuple[int, int, int], x: np.ndarray, dtype, mask +) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + x = x.copy() // (dtype.element_ty.primitive_bitwidth // 8) + z = ((x // (shape[1] * shape[2])) * mask - (1 - mask)).ravel() + y = (((x // shape[2]) % shape[1]) * mask - (1 - mask)).ravel() + x = ((x % shape[2]) * mask - (1 - mask)).ravel() + return z, y, x + + +def prepare_visualization_data(program_records, tensor_table): + """Prepare visualization data for the frntend and raw tensor data for the server.""" + # global idx + visualization_data = [] + raw_tensor_data = {} + for record in program_records: + record_uuid = str(uuid.uuid4())[:8] + + if isinstance(record, ExpandDims): + print(record.input_shape, record.output_shape, record.index) + if isinstance(record, Dot): + visualization_data.append( + { + "type": "Dot", + "input_shape": record.input_shape, + "other_shape": record.other_shape, + "output_shape": record.output_shape, + "uuid": record_uuid, + } + ) + + raw_tensor_data[record_uuid] = { + "input_data": torch.tensor(record.input_data), + "other_data": torch.tensor(record.other_data), + "intermediate_results": record.intermediate_results, + } + + elif isinstance(record, Load): + global_tensor, slice_tensor = tensor_table[record.ptr] + print(global_tensor) + global_coords, slice_coords = extract_load_coords(record, global_tensor) + + visualization_data.append( + { + "type": "Load", + "global_shape": global_tensor.shape, + "slice_shape": record.shape, + "global_coords": global_coords, + "slice_coords": slice_coords, + "uuid": record_uuid, + } + ) + + raw_tensor_data[record_uuid] = { + "global_tensor": global_tensor.data.cpu(), # Ensure it's on CPU + "dims": len(global_tensor.data.cpu().shape), + } + print(record.shape) + + elif isinstance(record, Store): + global_tensor, slice_tensor = tensor_table[record.ptr] + + global_coords, slice_coords = extract_load_coords(record, global_tensor) + + visualization_data.append( + { + "type": "Store", + "global_shape": global_tensor.shape, + "slice_shape": record.shape, + "global_coords": global_coords, + "slice_coords": slice_coords, + "uuid": record_uuid, + } + ) + + return visualization_data, raw_tensor_data, "" + + +def get_visualization_data(): + """Return the visualization data and raw tensor data.""" + records, tensor_table, failures = collect_grid() + visualization_data = {} + raw_tensor_data = {} + + for grid_idx, program_records in records.items(): + viz_data, raw_data, kernel_src = prepare_visualization_data( + program_records, tensor_table ) - for i, a in enumerate(bs) - ] - - -def make_cube(projection, start, end, color): - "Draws a cube from start position to end position." - start = np.array(start).astype(int) - end = np.array(end).astype(int) - s2 = end - start + 1 - s = scale3(*s2) - small_cube = cube() @ s.T - loc = [ - project(projection, l2 @ s.T, [V3(*start)]) - for l2 in lines(s2) - if l2.shape[1] > 0 - ] - outer2 = project(projection, small_cube, [V3(*start)]) - ls = loc - box = [ - (p.stroke().fill_color(color).fill_opacity(0.4).line_width(0), loc) - for p, loc in outer2 - ] - line = [ - (p.stroke().line_width(0.001).line_color(BLACK), l_) - for loc in ls - for p, l_ in loc - ] - return [(b, loc) for b, loc in box + line] - - -def group( - x: ArrayLike, y: ArrayLike, z: ArrayLike -) -> List[Tuple[Tuple[float, float, float], Tuple[float, float, float]]]: - "Groups together cubes into bigger cubes" - x = list(zip(zip(x, y, z), zip(x, y, z))) - x = [(a, b) for a, b in x if not (a[0] == -1 and a[1] == -1 and a[2] == -1)] - - start = x - - def remove_dups(ls): - "Remove duplicates" - out = [] - for y in ls: - if not out or y != out[-1]: - out.append(y) - return out - - for j in range(2, -1, -1): - x = remove_dups(start) - start = [] - while True: - if len(x) <= 1: - break - _, _, rest = x[0], x[1], x[2:] - m = 0 - for k in range(2): - a = x[0][k] - b = x[1][k] - if ( - (k == 0 or a[j % 3] == b[j % 3] - 1) - and a[(j + 1) % 3] == b[(j + 1) % 3] - and a[(j + 2) % 3] == b[(j + 2) % 3] - ): - m += 1 - if m == 2: - x = [[x[0][0], x[1][1]]] + rest - else: - start.append(x[0]) - x = [x[1]] + rest - start += x - return start + visualization_data[str(grid_idx)] = viz_data + raw_tensor_data.update(raw_data) + + # Get the kernel source code + + return { + "visualization_data": visualization_data, + "raw_tensor_data": raw_tensor_data, + "failures": failures, + "kernel_src": kernel_src, + } + + +def serialize_for_json(obj): + if isinstance(obj, np.ndarray): + return obj.tolist() + elif isinstance(obj, np.integer): + return int(obj) + elif isinstance(obj, np.floating): + return float(obj) + elif isinstance(obj, torch.Tensor): + return obj.cpu().numpy().tolist() + raise TypeError(f"Object of type {obj.__class__.__name__} is not JSON serializable") diff --git a/triton_viz/interface.py b/triton_viz/interface.py index 472f01d..e89e29a 100644 --- a/triton_viz/interface.py +++ b/triton_viz/interface.py @@ -1,99 +1,203 @@ -import gradio as gr -import triton_viz -import tempfile +import threading +from flask import Flask, render_template, jsonify, request from .analysis import analyze_records -from .tooltip import create_tooltip +from .draw import get_visualization_data +from .tooltip import get_tooltip_data import pandas as pd +import os +import torch +from flask_cloudflared import _run_cloudflared +import requests +import time +app = Flask( + __name__, + template_folder=os.path.join(os.path.dirname(__file__), "templates"), + static_folder=os.path.join(os.path.dirname(__file__), "static"), +) -def launch(share=True): - cache = {} +# Global variables to store the data +global_data = None +raw_tensor_data = None +precomputed_c_values = {} +current_fullscreen_op = None + + +def precompute_c_values(op_data): + input_data = op_data["input_data"] + other_data = op_data["other_data"] + rows, inner_dim = input_data.shape + cols = other_data.shape[1] + + precomputed = {} + for i in range(rows): + for j in range(cols): + precomputed[(i, j)] = [0] * (inner_dim + 1) + for k in range(1, inner_dim + 1): + precomputed[(i, j)][k] = torch.dot( + input_data[i, :k], other_data[:k, j] + ).item() + + return precomputed + + +def update_global_data(): + global global_data, raw_tensor_data, precomputed_c_values analysis_data = analyze_records() - program_records, tt, failures = triton_viz.collect_grid() - m = [0, 0, 0] - size = [0, 0] - for k in program_records.keys(): - m[0] = max(k[0] + 1, m[0]) - m[1] = max(k[1] + 1, m[1]) - m[2] = max(k[2] + 1, m[2]) - w, h = triton_viz.draw_record(program_records[(0, 0, 0)], tt, "tmp.svg") - size[0] = w - size[1] = h - height = 600 * size[1] / size[0] - with gr.Blocks( - css=".gradio-container button {overflow: auto} img.with-caption {height: %fpx !important; } .thumbnails { display: none; } " - % height - ) as demo: - with gr.Row(): - with gr.Column(scale=3, min_width=500): - img = gr.Gallery( - height=500, - min_width=500, - show_label=False, - selected_index=0, - preview=True, - object_fit="cover", - ) - with gr.Column(scale=1): - s1 = gr.Slider(0, m[0] - 1, value=0, step=1, label="Program Id 0") - s2 = gr.Slider(0, m[1] - 1, value=0, step=1, label="Program Id 1") - s3 = gr.Slider(0, m[2] - 1, value=0, step=1, label="Program Id 2") - b1 = gr.Button("Precompute") - gr.Markdown("## Analysis") - df = pd.DataFrame(analysis_data, columns=["Metric", "Value"]) - analysis_with_tooltip = create_tooltip(df) - gr.HTML(analysis_with_tooltip) - if failures: - gr.Markdown( - show_label=False, - value="## Invalid memory access in " - + "\n * " - + "\n* ".join(list(map(str, failures.keys()))), - ) - - def cache_block(idx): - name = tempfile.NamedTemporaryFile(suffix=".svg") - w, h = triton_viz.draw_record(program_records[idx], tt, name.name) - size[0] = w - size[1] = h - cache[idx] = (name, len(cache)) - - def update(inp): - a = inp[s1] - b = inp[s2] - c = inp[s3] - idx = (a, b, c) - - if idx not in cache: - cache_block(idx) - return gr.Gallery( - value=[(cache[k][0].name, str(k)) for k in cache.keys()], - selected_index=cache[idx][1], - height=700, - ), gr.Slider() - # * size[1]/size[0] - return gr.Gallery(selected_index=cache[idx][1]), gr.Slider() - - def precompute(inp): - a = inp[s1] - b = inp[s2] - c = inp[s3] - idx = (a, b, c) - for i in range(m[0]): - for j in range(m[1]): - for k in range(m[2]): - if (i, j, k) not in cache: - cache_block((i, j, k)) - return gr.Gallery( - value=[(cache[k][0].name, str(k)) for k in cache.keys()], - selected_index=cache[idx][1], - ) - - s1.change(update, inputs={s1, s2, s3}, outputs=[img, b1], show_progress=False) - s2.change(update, inputs={s1, s2, s3}, outputs=[img, b1], show_progress=False) - s3.change(update, inputs={s1, s2, s3}, outputs=[img, b1], show_progress=False) - b1.click(precompute, inputs={s1, s2, s3}, outputs=img, show_progress=True) - demo.load(update, inputs={s1, s2, s3}, outputs=[img, b1]) - - demo.launch(share=share, debug=False, height=800, quiet=True, show_api=False) - return failures + viz_data = get_visualization_data() + global_data = { + "ops": { + "visualization_data": viz_data["visualization_data"], + "failures": viz_data["failures"], + "kernel_src": viz_data["kernel_src"], + } + } + raw_tensor_data = viz_data["raw_tensor_data"] + + # Precompute C values for each Dot operation + precomputed_c_values = {} + for uuid, op_data in raw_tensor_data.items(): + if "input_data" in op_data and "other_data" in op_data: + precomputed_c_values[uuid] = precompute_c_values(op_data) + + df = pd.DataFrame(analysis_data, columns=["Metric", "Value"]) + analysis_with_tooltip = get_tooltip_data(df) + global_data["analysis"] = analysis_with_tooltip + + +@app.route("/") +def index(): + return render_template("index.html") + + +@app.route("/api/data") +def get_data(): + global global_data + if global_data is None: + update_global_data() + return jsonify(global_data) + + +@app.route("/api/update_data") +def update_data(): + update_global_data() + return jsonify({"status": "Data updated successfully"}) + + +@app.route("/api/setop", methods=["POST"]) +def set_current_op(): + global current_fullscreen_op + data = request.json + current_fullscreen_op = data.get("uuid") + return jsonify( + {"status": "Current op set successfully", "uuid": current_fullscreen_op} + ) + + +@app.route("/api/getValue", methods=["POST"]) +def get_value(): + global raw_tensor_data, precomputed_c_values, current_fullscreen_op + print(current_fullscreen_op) + data = request.json + uuid = data.get("uuid") + matrix_name = data.get("matrixName") + row = data.get("row") + col = data.get("col") + + if uuid not in raw_tensor_data: + return jsonify({"error": "Operation not found"}), 404 + + op_data = raw_tensor_data[uuid] + + if matrix_name == "A": + value = ( + op_data["input_data"][row, col].item() if "input_data" in op_data else None + ) + return jsonify({"value": value}) + elif matrix_name == "B": + value = ( + op_data["other_data"][row, col].item() if "other_data" in op_data else None + ) + return jsonify({"value": value}) + elif matrix_name == "C": + current_step = data.get("currentStep", 0) + + if uuid not in precomputed_c_values: + return jsonify({"error": "Precomputed values not found"}), 404 + + precomputed = precomputed_c_values[uuid] + current_value = precomputed[(row, col)][current_step] + + return jsonify( + { + "value": current_value, + } + ) + else: + return jsonify({"error": "Invalid matrix name"}), 400 + + +@app.route("/api/getLoadValue", methods=["POST"]) +def get_load_value(): + global raw_tensor_data, current_fullscreen_op + + data = request.json + uuid = data.get("uuid") + x = data.get("x") + y = data.get("y") + z = data.get("z") + print(x, y, z) + if uuid is None or uuid not in raw_tensor_data: + return jsonify({"error": "Operation not found"}), 404 + + op_data = raw_tensor_data[uuid] + + if "global_tensor" in op_data and ( + x is not None and y is not None and z is not None + ): + try: + value = 0.0 + if op_data["dims"] == 3: + value = op_data["global_tensor"][x, y, z].item() + elif op_data["dims"] == 2: + value = op_data["global_tensor"][x, y].item() + elif op_data["dims"] == 1: + value = op_data["global_tensor"][x].item() + + return jsonify({"value": value}) + except IndexError: + return jsonify({"error": "Coordinates out of bounds"}), 200 + else: + return jsonify({"error": "Global tensor data not found"}), 200 + + +def run_flask_with_cloudflared(): + cloudflared_port = 8000 # You can change this port if needed + tunnel_url = _run_cloudflared(cloudflared_port, 8001) # not too important + print(f"Cloudflare tunnel URL: {tunnel_url}") + app.run(port=cloudflared_port) + + +def launch(share=True): + print("Launching Triton viz tool") + if share: + flask_thread = threading.Thread(target=run_flask_with_cloudflared) + flask_thread.start() + + # Wait for the server to start + time.sleep(5) + + # Try to get the tunnel URL by making a request to the local server + try: + response = requests.get("http://localhost:8000") + print(f"Your app is now available at: {response.url}") + except requests.exceptions.RequestException: + print("Please wait for URL:") + else: + app.run(port=5001) + + +# This function can be called to stop the Flask server if needed +def stop_server(flask_thread): + # Implement a way to stop the Flask server + pass diff --git a/triton_viz/interpreter.py b/triton_viz/interpreter.py index a572e1e..953d56b 100644 --- a/triton_viz/interpreter.py +++ b/triton_viz/interpreter.py @@ -44,6 +44,19 @@ def _unpatch_lang(): class RecordBuilder: + def to_dict(self): + """Convert the recorded data to a dictionary format for JSON serialization.""" + return { + "launches": [ + { + "grid": launch.grid, + "tensors": [tensor.__dict__ for tensor in launch.tensors], + "records": [record.__dict__ for record in launch.records], + } + for launch in self._launches + ] + } + def __init__(self) -> None: self.reset() @@ -136,7 +149,9 @@ def _check_storage_contiguous(tensor): def _grid_executor_call(self, *args_dev, **kwargs): # Removes reserved keywords from kwargs + # kwargs has src_map and src src is the raw straight spurce code, src_map is a mapping between source code line and an op kwargs = {k: v for k, v in kwargs.items() if k not in RESERVED_KWS} + if kwargs.pop("warmup", False): return args_hst, kwargs_hst = self._init_args_hst(args_dev, kwargs) @@ -162,6 +177,7 @@ def _grid_executor_call(self, *args_dev, **kwargs): arg.stride(), arg.shape, arg.element_size(), + arg, ) ) call_args[name] = ret @@ -291,15 +307,31 @@ def wrapper(lhs, rhs, op): def _create_dot(fn): @wraps(fn) - def wrapper(a, b, d, allow_tf32, maxNumImpreciseAcc): - ret = fn(a, b, d, allow_tf32, maxNumImpreciseAcc) + def wrapper(a, b, c, allow_tf32, max_num_imprecise_acc): dot_record = Dot( - input_shape=(a.data.shape, b.data.shape), - other_shape=d.data.shape, - output_shape=ret.data.shape, + input_shape=a.data.shape, + other_shape=b.data.shape, + output_shape=c.data.shape, + input_data=a.data.tolist(), + other_data=b.data.tolist(), ) record_builder.add_record(dot_record) - return ret + + def capture_intermediate(row, col, result): + dot_record.update_intermediate(row, col, float(result)) + + # Modify the original function to call capture_intermediate at each step + def modified_fn(a, b, c, allow_tf32, max_num_imprecise_acc): + for i in range(a.data.shape[0]): + for j in range(b.data.shape[1]): + A_row = a.data[i, :] + B_column = b.data[:, j] + result = np.dot(A_row, B_column) + capture_intermediate(i, j, result) + c.data[i, j] = result + + modified_fn(a, b, c, allow_tf32, max_num_imprecise_acc) + return c return wrapper @@ -377,3 +409,8 @@ def patch(): interpreter_builder.binary_op = old_binary_op interpreter_builder.create_dot = old_create_dot interpreter_builder.create_masked_store = old_create_masked_store + + +def get_recorded_data(): + """Return the recorded data in a format suitable for JSON serialization.""" + return record_builder.to_dict() diff --git a/triton_viz/static/gridblock.js b/triton_viz/static/gridblock.js new file mode 100644 index 0000000..6c999cc --- /dev/null +++ b/triton_viz/static/gridblock.js @@ -0,0 +1,241 @@ +import { createMatMulVisualization } from './matmul.js'; +import { createLoadVisualization } from './load.js'; +import { createStoreVisualization } from './store.js'; + +export class GridBlock { + constructor(x, y, width, height, gridX, gridY, gridZ, blockData, onClose, containerElement, canvas, drawFunction) { + this.rect = { x, y, width, height }; + this.gridPosition = { x: gridX, y: gridY, z: gridZ }; + this.blockData = blockData; + this.isHovered = false; + this.visualizationContainer = null; + this.visualizationCleanupFunction = null; + this.onClose = onClose; + this.containerElement = containerElement; + this.canvas = canvas; + this.drawFunction = drawFunction; + this.isDetailedViewVisible = false; + this.contentArea = null; + } + + + draw(ctx) { + // Draw background + ctx.fillStyle = this.isHovered ? '#4a4a4a' : '#323232'; + ctx.fillRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height); + + // Draw border + ctx.strokeStyle = '#000000'; + ctx.lineWidth = 1; + ctx.strokeRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height); + + // Draw grid position + ctx.fillStyle = '#c8c8c8'; + ctx.font = '12px Arial'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + const posText = `${this.gridPosition.x},${this.gridPosition.y},${this.gridPosition.z}`; + ctx.fillText(posText, this.rect.x + this.rect.width / 2, this.rect.y + 2); + + // Draw operation types + ctx.font = '10px Arial'; + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; + this.blockData.forEach((op, index) => { + ctx.fillText(op.type, this.rect.x + 5, this.rect.y + 20 + index * 15); + }); + } + + isPointInside(x, y) { + return x >= this.rect.x && x <= this.rect.x + this.rect.width && + y >= this.rect.y && y <= this.rect.y + this.rect.height; + } + + handleMouseMove(x, y) { + const wasHovered = this.isHovered; + this.isHovered = this.isPointInside(x, y); + return wasHovered !== this.isHovered; // Return true if hover state changed + } + + + showDetailedView() { + if (this.isDetailedViewVisible) return; + + this.visualizationContainer = this.createVisualizationContainer(); + document.body.appendChild(this.visualizationContainer); + + const title = this.createTitle(); + const headerBar = this.createHeaderBar(); + this.contentArea = this.createContentArea(); + + this.visualizationContainer.appendChild(title); + this.visualizationContainer.appendChild(headerBar); + this.visualizationContainer.appendChild(this.contentArea); + + const closeButton = this.createCloseButton(); + this.visualizationContainer.appendChild(closeButton); + + this.isDetailedViewVisible = true; + this.canvas.style.display = 'none'; + this.containerElement.style.display = 'block'; + + // Display the first operation visualization after the content area is added to the DOM + if (this.blockData.length > 0) { + this.displayOpVisualization(this.blockData[0]); + } + } + + createVisualizationContainer() { + const container = document.createElement('div'); + Object.assign(container.style, { + position: 'fixed', + top: '0', + left: '0', + width: '100vw', + height: '100vh', + backgroundColor: '#1e1e28', + zIndex: '1000', + display: 'flex', + flexDirection: 'column', + color: '#ffffff' + }); + return container; + } + + createTitle() { + const title = document.createElement('h2'); + title.textContent = `Operations at (${this.gridPosition.x}, ${this.gridPosition.y}, ${this.gridPosition.z})`; + title.style.textAlign = 'center'; + title.style.margin = '10px 0'; + return title; + } + + createHeaderBar() { + const headerBar = document.createElement('div'); + Object.assign(headerBar.style, { + display: 'flex', + flexDirection: 'row', + backgroundColor: '#333', + padding: '5px', + overflowX: 'auto' + }); + + let currentSelectedTab = null; + this.blockData.forEach((op, index) => { + const opTab = this.createOperationTab(op, index === 0); + opTab.addEventListener('click', () => this.handleTabClick(opTab, op, currentSelectedTab)); + headerBar.appendChild(opTab); + if (index === 0) currentSelectedTab = opTab; + }); + + return headerBar; + } + + createOperationTab(op, isFirst) { + const opTab = document.createElement('button'); + opTab.textContent = op.type; + Object.assign(opTab.style, { + flex: '0 0 auto', + marginRight: '5px', + backgroundColor: isFirst ? '#555' : '#333', + color: '#fff', + border: 'none', + padding: '10px', + cursor: 'pointer' + }); + return opTab; + } + + handleTabClick(clickedTab, op, currentSelectedTab) { + if (currentSelectedTab) currentSelectedTab.style.backgroundColor = '#333'; + clickedTab.style.backgroundColor = '#555'; + this.displayOpVisualization(op); + } + + createContentArea() { + const contentArea = document.createElement('div'); + Object.assign(contentArea.style, { + flex: '1', + padding: '10px', + overflow: 'hidden', + position: 'relative' + }); + + if (this.blockData.length === 0) { + const noDataMsg = document.createElement('p'); + noDataMsg.textContent = 'No operation data available'; + noDataMsg.style.textAlign = 'center'; + contentArea.appendChild(noDataMsg); + } + + return contentArea; + } + displayOpVisualization(op) { + if (!this.contentArea) { + console.error('Content area is not initialized'); + return; + } + + if (this.visualizationCleanupFunction) { + this.visualizationCleanupFunction(); + this.visualizationCleanupFunction = null; + } + + this.contentArea.innerHTML = ''; + + switch (op.type) { + case 'Dot': + this.visualizationCleanupFunction = createMatMulVisualization(this.contentArea, op); + break; + case 'Load': + this.visualizationCleanupFunction = createLoadVisualization(this.contentArea, op); + break; + case 'Store': + this.visualizationCleanupFunction = createStoreVisualization(this.contentArea, op); + break; + default: + const unsupportedMsg = document.createElement('p'); + unsupportedMsg.textContent = `Visualization not supported for ${op.type} operation`; + unsupportedMsg.style.textAlign = 'center'; + this.contentArea.appendChild(unsupportedMsg); + } + } + + + createCloseButton() { + const closeButton = document.createElement('button'); + closeButton.textContent = 'Close'; + Object.assign(closeButton.style, { + position: 'fixed', + top: '10px', + right: '10px', + zIndex: '1001' + }); + closeButton.addEventListener('click', () => this.hideDetailedView()); + return closeButton; + } + + hideDetailedView() { + if (!this.isDetailedViewVisible) return; + + if (this.visualizationCleanupFunction) { + this.visualizationCleanupFunction(); + this.visualizationCleanupFunction = null; + } + + if (this.visualizationContainer) { + document.body.removeChild(this.visualizationContainer); + this.visualizationContainer = null; + } + + this.isDetailedViewVisible = false; + + if (this.onClose) { + this.onClose(); + } + + this.canvas.style.display = 'block'; + this.containerElement.style.display = 'none'; + this.drawFunction(); + } +} diff --git a/triton_viz/static/images/accelerator-memory-hierarchy.png b/triton_viz/static/images/accelerator-memory-hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..3ca48d1bd0ac5c51f4728b537e72f43d9a7cdb89 GIT binary patch literal 274965 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 z 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 LZs#cuLBIV6Y5|`4 literal 0 HcmV?d00001 diff --git a/triton_viz/static/images/tensor-slicing-diagram.png b/triton_viz/static/images/tensor-slicing-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a300ffd13ee242331453cfe2625e8fcf206954 GIT binary patch literal 230966 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 )pND&+syel` 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

Ex@$zwZ6vPw$}{ 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 literal 0 HcmV?d00001 diff --git a/triton_viz/static/infoPopup.js b/triton_viz/static/infoPopup.js new file mode 100644 index 0000000..0693a77 --- /dev/null +++ b/triton_viz/static/infoPopup.js @@ -0,0 +1,211 @@ +const infoContent = [ + { + title: "Visualization Tool Overview", + content: ` +

This tool allows you to explore and visualize tensor operations.

+
    +
  • Use the sliders to filter grid blocks along different dimensions.
  • +
  • Click on a grid block to view detailed information about its operations.
  • +
  • The Z-axis slider controls the current Z-level being displayed.
  • +
+ +

Need a bit of a tutorial?

+

If you're new to Triton or need to brush up on your skills, check out Triton Puzzles. It's a collection of Triton problems designed to get you up to speed:

+

Triton Puzzles on GitHub

+

These puzzles provide hands-on experience with Triton concepts, which can help you better understand the visualizations in this tool.

+ ` + }, + { + title: "Using the Sliders", + content: ` +

The sliders on the right side of the screen allow you to filter the grid blocks:

+
    +
  • Program Id 0: Filters blocks along the X-axis
  • +
  • Program Id 1: Filters blocks along the Y-axis
  • +
  • Program Id 2: Filters blocks along the Z-axis
  • +
+

Set a slider to -1 to show all blocks along that dimension.

+ ` + }, + { + title: "Detailed View", + content: ` +

Clicking on a grid block will open a detailed view of the operations for that block.

+

In the detailed view, you can:

+
    +
  • See the specific operations performed in the block
  • +
  • View visualizations of matrix multiplications, loads, and stores
  • +
  • Navigate between different operations using the tabs at the top
  • +
+ + ` + }, + { + title: "Tensor Slicing in Triton", + content: ` +

Triton operates on slices of tensors rather than entire tensors. This is a key concept in understanding how Triton kernels process data efficiently.

+ +

Global Tensor vs Slice Tensor

+
    +
  • Global Tensor: This is the full tensor created by PyTorch. It represents the entire data structure you're working with.
  • +
  • Slice Tensor: This is a portion of the global tensor that Triton operates on within its kernels.
  • +
+ +

Loading Tensor Slices

+

Inside Triton kernels, tl.load is used to load slices of the global tensor. For example:

+
a = tl.load(a_ptrs, mask=offs_k[None, :])
+

This operation loads only the necessary slice of data, optimizing memory access and computation.

+ +

Key Points

+
    +
  • PyTorch creates and manages the global tensor.
  • +
  • Triton kernels work with slices of this global tensor for efficiency.
  • +
  • tl.load and tl.store operations in Triton handle the slicing automatically.
  • +
  • This approach allows for parallel processing of different parts of the tensor.
  • +
+ + Tensor Slicing Diagram +

Diagram showing how a global PyTorch tensor is sliced for processing in Triton kernels.

+ ` + }, + { + title: "Memory Hierarchy in AI Accelerators and Triton Operations", + content: ` +

Understanding the memory hierarchy in AI accelerators is crucial for optimizing Triton kernels. While this example uses a GPU, it's important to note that Triton is designed for various AI accelerators, not just GPUs.

+ +

Memory Types in AI Accelerators

+
    +
  • Global Memory (GMEM): The magenta region in the image represents global memory, often referred to as DRAM, HBM, or device memory. This is typically the largest but slowest memory on the accelerator.
  • +
  • Shared Memory (SMEM)*: The red region* in the image contains shared memory. Note that not the entire red area is shared memory, as there are other on-die components as well.
  • +
  • Other Memory Types: Many accelerators also include additional faster memory types like L2 cache and registers, which are not the focus of this explanation but play important roles in performance.
  • +
+ +

Memory Access in Triton

+

Triton provides mechanisms to efficiently move data between these memory types across various accelerators:

+
    +
  • tl.load: Generally used to load a specified portion of the global tensor into shared memory*. This operation can significantly speed up subsequent computations.
  • +
  • tl.store: Used to write processed data back to global memory.
  • +
+ +

* It's important to note that Triton doesn't always transfer tensor slices to shared memory. This operation is performed only when it makes sense for performance optimization.

+ +

Key Points

+
    +
  • Triton is designed for various AI accelerators, not just GPUs. Most AI accelerators have equivalent concepts to GMEM and SMEM.
  • +
  • The RTX 4090 GPU shown in the image is just one example of an AI accelerator architecture.
  • +
  • Shared memory (or its equivalent) is typically on-chip and much faster than global memory.
  • +
  • Efficient use of shared memory can significantly boost kernel performance across different accelerators.
  • +
  • Triton's tl.load and tl.store operations abstract the complexity of memory transfers, making code portable across different accelerator types.
  • +
  • The decision to use shared memory is based on the specific requirements of the computation being performed and the characteristics of the target accelerator.
  • +
+ + AI Accelerator Memory Hierarchy +

Diagram showing the memory hierarchy of an RTX 4090 GPU as an example of AI accelerator architecture. Global memory (magenta) and on-chip memory including shared memory* (red) are highlighted. Note that this structure is similar across many AI accelerators.

+ ` + } +]; + +let currentPage = 0; + +export function createInfoPopup() { + const infoPopup = document.createElement('div'); + infoPopup.style.display = 'none'; + infoPopup.style.position = 'fixed'; + infoPopup.style.top = '5%'; + infoPopup.style.left = '5%'; + infoPopup.style.width = '85%'; + infoPopup.style.height = '75%'; + infoPopup.style.backgroundColor = '#1a1a1a'; + infoPopup.style.color = '#fff'; + infoPopup.style.padding = '30px'; + infoPopup.style.borderRadius = '15px'; + infoPopup.style.boxShadow = '0 4px 6px rgba(0, 0, 0, 0.5)'; + infoPopup.style.zIndex = '1000'; + infoPopup.style.overflow = 'auto'; + + const closeButton = createButton('×', () => { infoPopup.style.display = 'none'; }); + closeButton.style.position = 'absolute'; + closeButton.style.top = '20px'; + closeButton.style.right = '20px'; + closeButton.style.fontSize = '36px'; + closeButton.style.color = '#fff'; + + const content = document.createElement('div'); + content.id = 'info-content'; + content.style.fontSize = '18px'; + content.style.lineHeight = '1.6'; + + const navigation = document.createElement('div'); + navigation.style.display = 'flex'; + navigation.style.justifyContent = 'space-between'; + navigation.style.marginTop = '30px'; + + const prevButton = createNavButton('← Previous', () => navigatePage(-1)); + const nextButton = createNavButton('Next →', () => navigatePage(1)); + + navigation.appendChild(prevButton); + navigation.appendChild(nextButton); + + infoPopup.appendChild(closeButton); + infoPopup.appendChild(content); + infoPopup.appendChild(navigation); + + document.body.appendChild(infoPopup); + + updateContent(); + + return infoPopup; +} + +function createButton(text, onClick) { + const button = document.createElement('button'); + button.innerHTML = text; + button.style.border = 'none'; + button.style.background = 'none'; + button.style.cursor = 'pointer'; + button.style.color = '#fff'; + button.onclick = onClick; + return button; +} + +function createNavButton(text, onClick) { + const button = createButton(text, onClick); + button.style.fontSize = '20px'; + button.style.padding = '15px 25px'; + button.style.backgroundColor = '#333'; + button.style.borderRadius = '8px'; + button.style.transition = 'background-color 0.3s'; + button.onmouseover = () => { button.style.backgroundColor = '#444'; }; + button.onmouseout = () => { button.style.backgroundColor = '#333'; }; + return button; +} + +function navigatePage(direction) { + currentPage += direction; + if (currentPage < 0) currentPage = infoContent.length - 1; + if (currentPage >= infoContent.length) currentPage = 0; + updateContent(); +} + +function updateContent() { + const contentDiv = document.getElementById('info-content'); + const pageContent = infoContent[currentPage]; + contentDiv.innerHTML = ` +

${pageContent.title}

+ ${pageContent.content} + `; + + // Ensure all text in the content is white and styled appropriately + contentDiv.querySelectorAll('p, li').forEach(element => { + element.style.color = '#fff'; + element.style.marginBottom = '15px'; + }); + + contentDiv.querySelectorAll('ul').forEach(element => { + element.style.paddingLeft = '30px'; + }); +} + +export function showInfoPopup(infoPopup) { + infoPopup.style.display = 'block'; +} \ No newline at end of file diff --git a/triton_viz/static/load.js b/triton_viz/static/load.js new file mode 100644 index 0000000..8574cf6 --- /dev/null +++ b/triton_viz/static/load.js @@ -0,0 +1,221 @@ +import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.155.0/build/three.module.js'; +import { + setupScene, + setupGeometries, + createTensor, + calculateTensorSize, + updateCubeColor, + setupCamera, + setupEventListeners, + cameraControls +} from './load_utils.js'; + +export function createLoadVisualization(containerElement, op) { + + console.log(op.uuid); + fetch('/api/setop', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid: op.uuid }), + }) + .then(response => response.json()) + .then(data => console.log('Set current op:', data)) + .catch((error) => console.error('Error:', error)); + + let currentStep = 0; + let frame = 0; + let isPaused = false; + + const sideMenu = createSideMenu(containerElement); + let hoveredCube = null; + + const COLOR_GLOBAL = new THREE.Color(0.2, 0.2, 0.2); // Dark Gray + const COLOR_SLICE = new THREE.Color(0.0, 0.7, 1.0); // Cyan (starting color for global slice) + const COLOR_LEFT_SLICE = new THREE.Color(1.0, 0.0, 1.0); // Magenta (starting color for left slice) + const COLOR_LOADED = new THREE.Color(1.0, 0.8, 0.0); // Gold (final color for both slices) + const COLOR_BACKGROUND = new THREE.Color(0.0, 0.0, 0.0); // Black + + const { scene, camera, renderer } = setupScene(containerElement, COLOR_BACKGROUND); + const { cubeGeometry, edgesGeometry, lineMaterial } = setupGeometries(); + + const globalTensor = createTensor(op.global_shape, op.global_coords, COLOR_GLOBAL, 'Global', cubeGeometry, edgesGeometry, lineMaterial); + const sliceTensor = createTensor(op.slice_shape, op.slice_coords, COLOR_LEFT_SLICE, 'Slice', cubeGeometry, edgesGeometry, lineMaterial); + + // Position slice tensor + const globalSize = calculateTensorSize(op.global_shape); + sliceTensor.position.set(globalSize.x + 5, 0, 0); // Adjusted tensor spacing + + scene.add(globalTensor); + scene.add(sliceTensor); + + addLabels(scene, globalTensor, sliceTensor); + setupCamera(scene, camera); + + const totalFrames = op.global_coords.length * 2 + 30; + + const raycaster = new THREE.Raycaster(); + const mouse = new THREE.Vector2(); + + const onKeyDown = cameraControls(camera, new THREE.Euler(0, 0, 0, 'YXZ')); + setupEventListeners(containerElement, camera, renderer, onMouseMove, onKeyDown); + animate(); + + async function onMouseMove(event) { + mouse.x = (event.clientX / containerElement.clientWidth) * 2 - 1; + mouse.y = -(event.clientY / containerElement.clientHeight) * 2 + 1; + + raycaster.setFromCamera(mouse, camera); + + const allTensorChildren = [ + ...globalTensor.children, + ...sliceTensor.children + ]; + + const intersects = raycaster.intersectObjects(allTensorChildren, true); + + if (hoveredCube) { + hoveredCube.getObjectByName('hoverOutline').visible = false; + hoveredCube = null; + } + + if (intersects.length > 0) { + hoveredCube = intersects[0].object; + while (hoveredCube && !hoveredCube.tensorName) { + hoveredCube = hoveredCube.parent; + } + + if (hoveredCube) { + const hoverOutline = hoveredCube.getObjectByName('hoverOutline'); + if (hoverOutline) { + hoverOutline.visible = true; + } + + updateSideMenu(hoveredCube.tensorName, hoveredCube.tensor0, hoveredCube.tensor1, hoveredCube.tensor2, undefined); + + const res = await getElementValue(hoveredCube.tensorName, hoveredCube.tensor0, hoveredCube.tensor1, hoveredCube.tensor2); + + updateSideMenu(hoveredCube.tensorName, hoveredCube.tensor0, hoveredCube.tensor1, hoveredCube.tensor2, res.value); + + console.log(`Value: ${res.value}`); + } + } else { + updateSideMenu(null); + } + } + + function animate() { + requestAnimationFrame(animate); + + if (!isPaused && frame < totalFrames) { + const index = Math.floor(frame / 2); + const factor = (frame % 2) / 1.0; + + if (index < op.global_coords.length) { + const globalCoord = op.global_coords[index]; + const sliceCoord = op.slice_coords[index]; + + updateCubeColor(globalTensor, globalCoord, COLOR_GLOBAL, COLOR_SLICE, factor); + updateCubeColor(sliceTensor, sliceCoord, COLOR_LEFT_SLICE, COLOR_LOADED, factor); + + highlightCurrentOperation(globalTensor, globalCoord, sliceTensor, sliceCoord); + updateInfoPanel(globalCoord, sliceCoord, index); + } + + frame++; + } + + renderer.render(scene, camera); + } + + function highlightCurrentOperation(globalTensor, globalCoord, sliceTensor, sliceCoord) { + globalTensor.children.forEach(cube => cube.material.emissive.setHex(0x000000)); + sliceTensor.children.forEach(cube => cube.material.emissive.setHex(0x000000)); + + const globalCube = globalTensor.children.find(c => + c.tensor0 === globalCoord[0] && c.tensor1 === globalCoord[1] && c.tensor2 === globalCoord[2] + ); + const sliceCube = sliceTensor.children.find(c => + c.tensor0 === sliceCoord[0] && c.tensor1 === sliceCoord[1] && c.tensor2 === sliceCoord[2] + ); + + if (globalCube) globalCube.material.emissive.setHex(0x444444); + if (sliceCube) sliceCube.material.emissive.setHex(0x444444); + } + + async function getElementValue(tensorName, x, y, z) { + let uuid = op.uuid; + const response = await fetch('/api/getLoadValue', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid, tensorName, x, y, z }), + }); + return await response.json(); + } + + function updateSideMenu(tensorName, x, y, z, value) { + if (!tensorName) { + sideMenu.innerHTML = ''; + return; + } + + let dims = tensorName === 'Global' ? op.global_shape : op.slice_shape; + sideMenu.innerHTML = ` +

${tensorName} Tensor

+

X: ${x + 1}

+

Y: ${y + 1}

+

Z: ${z + 1}

+

Dimensions: ${dims.join(' x ')}

+

Value: ${value !== undefined ? value : 'Loading...'}

+ `; + } + + function updateInfoPanel(globalCoord, sliceCoord, index) { + sideMenu.innerHTML = ` +

Current Operation

+

Global Coords: (${globalCoord.join(', ')})

+

Slice Coords: (${sliceCoord.join(', ')})

+

Progress: ${index + 1}/${op.global_coords.length}

+ `; + } + + function createSideMenu(container) { + const menu = document.createElement('div'); + menu.style.position = 'absolute'; + menu.style.top = '10px'; + menu.style.right = '10px'; + menu.style.width = '200px'; + menu.style.padding = '10px'; + menu.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; + menu.style.color = 'white'; + menu.style.fontFamily = 'Arial, sans-serif'; + menu.style.fontSize = '14px'; + menu.style.borderRadius = '5px'; + container.appendChild(menu); + return menu; + } + + function addLabels(scene, globalTensor, sliceTensor) { + addLabel(scene, "Global Tensor", globalTensor.position); + addLabel(scene, "Slice Tensor", sliceTensor.position); + } + + function addLabel(scene, text, position) { + const canvas = document.createElement('canvas'); + const context = canvas.getContext('2d'); + context.font = 'Bold 24px Arial'; + context.fillStyle = 'white'; + context.fillText(text, 0, 24); + + const texture = new THREE.CanvasTexture(canvas); + const material = new THREE.SpriteMaterial({ map: texture }); + const sprite = new THREE.Sprite(material); + sprite.position.set(position.x, position.y + 2, position.z); + sprite.scale.set(4, 2, 1); + scene.add(sprite); + } + +} diff --git a/triton_viz/static/load_utils.js b/triton_viz/static/load_utils.js new file mode 100644 index 0000000..2729d04 --- /dev/null +++ b/triton_viz/static/load_utils.js @@ -0,0 +1,200 @@ +import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.155.0/build/three.module.js'; + +export const CUBE_SIZE = 0.2; +export const GAP = 0.05; +export const COLOR_HOVER = new THREE.Color(1.0, 1.0, 0.0); // Yellow for hover effect +export const COLOR_EDGE = new THREE.Color(0.5, 0.5, 0.5); // Gray (for cube edges) + +const COLOR_SLICE = new THREE.Color(0.0, 0.7, 1.0); // Cyan (starting color for global slice) + +export function setupScene(container, backgroundColor = 0x000000) { + const scene = new THREE.Scene(); + scene.background = new THREE.Color(backgroundColor); + const camera = new THREE.PerspectiveCamera(45, container.clientWidth / container.clientHeight, 0.1, 1000); + const renderer = new THREE.WebGLRenderer({ antialias: true }); + renderer.setSize(container.clientWidth, container.clientHeight); + container.appendChild(renderer.domElement); + + const ambientLight = new THREE.AmbientLight(0xffffff, 0.5); + scene.add(ambientLight); + const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5); + directionalLight.position.set(10, 10, 10); + scene.add(directionalLight); + + return { scene, camera, renderer }; +} + +export function setupGeometries() { + const cubeGeometry = new THREE.BoxGeometry(CUBE_SIZE, CUBE_SIZE, CUBE_SIZE); + const edgesGeometry = new THREE.EdgesGeometry(cubeGeometry); + const lineMaterial = new THREE.LineBasicMaterial({ color: COLOR_EDGE }); + return { cubeGeometry, edgesGeometry, lineMaterial }; +} + +export function createCube(color, tensorName, x, y, z, cubeGeometry, edgesGeometry, lineMaterial) { + const cubeMaterial = new THREE.MeshPhongMaterial({ color: color }); + const cube = new THREE.Mesh(cubeGeometry, cubeMaterial); + const edges = new THREE.LineSegments(edgesGeometry, lineMaterial); + cube.add(edges); + + const hoverGeometry = new THREE.BoxGeometry(CUBE_SIZE * 1.05, CUBE_SIZE * 1.05, CUBE_SIZE * 1.05); + const hoverEdgesGeometry = new THREE.EdgesGeometry(hoverGeometry); + const hoverOutline = new THREE.LineSegments(hoverEdgesGeometry, new THREE.LineBasicMaterial({ color: COLOR_HOVER })); + hoverOutline.visible = false; + hoverOutline.name = 'hoverOutline'; + cube.add(hoverOutline); + + // Add custom properties to store tensor coordinates + cube.userData.tensor0 = z; + cube.userData.tensor1 = y; + cube.userData.tensor2 = x; + cube.userData.tensorName = tensorName; + + cube.name = `${tensorName}_cube_${x}_${y}_${z}`; + + return cube; +} + +export function createTensor(shape, coords, color, tensorName, cubeGeometry, edgesGeometry, lineMaterial) { + console.log(`Creating ${tensorName} tensor:`, shape, coords); + const tensor = new THREE.Group(); + let [width, height, depth] = shape; + depth = depth || 1; + height = height || 1; + + if (tensorName === 'Global') { + console.log(`Creating global tensor with dimensions: ${width}x${height}x${depth}`); + for (let z = 0; z < depth; z++) { + for (let y = 0; y < height; y++) { + for (let x = 0; x < width; x++) { + const cube = createCube(color, tensorName, x, y, z, cubeGeometry, edgesGeometry, lineMaterial); + cube.position.set( + x * (CUBE_SIZE + GAP), + -y * (CUBE_SIZE + GAP), + -z * (CUBE_SIZE + GAP) + ); + tensor.add(cube); + } + } + } + + console.log(`Highlighting ${coords.length} coordinates in global tensor`); + coords.forEach(([x, y, z]) => { + const cube = tensor.children.find(c => + c.userData.tensor0 === x && c.userData.tensor1 === y && c.userData.tensor2 === z + ); + if (cube) { + cube.material.color.set(COLOR_SLICE); + console.log(`Highlighted cube at (${x}, ${y}, ${z})`); + } else { + console.warn(`Could not find cube at (${x}, ${y}, ${z})`); + } + }); + } else { + console.log(`Creating slice tensor with ${coords.length} coordinates`); + coords.forEach(([x, y, z]) => { + const cube = createCube(color, tensorName, x, y, z, cubeGeometry, edgesGeometry, lineMaterial); + cube.position.set( + x * (CUBE_SIZE + GAP), + -y * (CUBE_SIZE + GAP), + -z * (CUBE_SIZE + GAP) + ); + tensor.add(cube); + }); + } + + console.log(`Created ${tensorName} tensor with ${tensor.children.length} cubes`); + return tensor; +} + +export function calculateTensorSize(shape) { + const [width, height, depth] = shape; + return new THREE.Vector3( + width * (CUBE_SIZE + GAP), + height * (CUBE_SIZE + GAP), + depth * (CUBE_SIZE + GAP) + ); +} + +export function interpolateColor(color1, color2, factor) { + return new THREE.Color().lerpColors(color1, color2, factor); +} + +export function updateCubeColor(tensor, coord, startColor, endColor, factor) { + const cube = tensor.children.find(c => + c.tensor0 === coord[0] && c.tensor1 === coord[1] && c.tensor2 === coord[2] + ); + if (cube) { + cube.material.color.copy(interpolateColor(startColor, endColor, factor)); + } +} + +export function setupCamera(scene, camera) { + const box = new THREE.Box3().setFromObject(scene); + const center = box.getCenter(new THREE.Vector3()); + const size = box.getSize(new THREE.Vector3()); + const maxDim = Math.max(size.x, size.y, size.z); + const fov = camera.fov * (Math.PI / 180); + let cameraZ = Math.abs(maxDim / 2 / Math.tan(fov / 2)); + cameraZ *= 1.5; + + camera.position.set(center.x, center.y, center.z + cameraZ); + camera.lookAt(center); + + return { center, cameraZ }; +} + +export function setupEventListeners(containerElement, camera, renderer, onMouseMove, onKeyDown) { + window.addEventListener('resize', () => { + camera.aspect = containerElement.clientWidth / containerElement.clientHeight; + camera.updateProjectionMatrix(); + renderer.setSize(containerElement.clientWidth, containerElement.clientHeight); + }); + containerElement.addEventListener('mousemove', onMouseMove); + window.addEventListener('keydown', onKeyDown); +} + +export function cameraControls(camera, cameraRotation) { + const PAN_SPEED = 0.1; + const TILT_SPEED = 0.02; + const ZOOM_SPEED = 0.5; + + return function onKeyDown(event) { + switch (event.key.toLowerCase()) { + case 'w': + camera.position.y += PAN_SPEED; + break; + case 's': + camera.position.y -= PAN_SPEED; + break; + case 'a': + camera.position.x -= PAN_SPEED; + break; + case 'd': + camera.position.x += PAN_SPEED; + break; + case 'arrowup': + cameraRotation.x -= TILT_SPEED; + break; + case 'arrowdown': + cameraRotation.x += TILT_SPEED; + break; + case 'arrowleft': + cameraRotation.y -= TILT_SPEED; + break; + case 'arrowright': + cameraRotation.y += TILT_SPEED; + break; + case 'o': + camera.position.z += ZOOM_SPEED; + break; + case 'p': + camera.position.z -= ZOOM_SPEED; + break; + case ' ': + break; + } + camera.setRotationFromEuler(cameraRotation); + camera.updateProjectionMatrix(); + }; +} diff --git a/triton_viz/static/matmul.js b/triton_viz/static/matmul.js new file mode 100644 index 0000000..d87d78b --- /dev/null +++ b/triton_viz/static/matmul.js @@ -0,0 +1,360 @@ +import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.155.0/build/three.module.js'; + +export function createMatMulVisualization(containerElement, op) { + const { input_shape, other_shape, output_shape } = op; + console.log(op.uuid) + fetch('/api/setop', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid: op.uuid }), + }) + .then(response => response.json()) + .then(data => console.log('Set current op:', data)) + .catch((error) => console.error('Error:', error)); + let currentStep = 0; + const totalSteps = input_shape[1]; + let frame = 0; + + + const sideMenu = document.createElement('div'); + sideMenu.style.position = 'absolute'; + sideMenu.style.top = '10px'; + sideMenu.style.right = '10px'; + sideMenu.style.width = '200px'; + sideMenu.style.padding = '10px'; + sideMenu.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; + sideMenu.style.color = 'white'; + sideMenu.style.fontFamily = 'Arial, sans-serif'; + sideMenu.style.fontSize = '14px'; + sideMenu.style.borderRadius = '5px'; + containerElement.appendChild(sideMenu); + let hoveredCube = null; + + + + + async function getElementValue( matrixName, row, col) { + let uuid = op.uuid; + const response = await fetch('/api/getValue', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid, matrixName, row, col, currentStep }), + }); + return await response.json(); + } + + + function updateSideMenu(matrix, x, y) { + if (!matrix) { + sideMenu.innerHTML = ''; + return; + } + + let matrixName; + let dims; + if (matrix === matrixA) { + matrixName = 'A'; + dims = input_shape; + } else if (matrix === matrixB) { + matrixName = 'B'; + dims = other_shape; + } else if (matrix === matrixC) { + matrixName = 'C'; + dims = output_shape; + } else { + sideMenu.innerHTML = ''; + return; + } + console.log(matrixName, "x:", (x + 1), "y:", (y + 1)); + sideMenu.innerHTML = ` +

Matrix ${matrixName}

+

Row: ${y + 1}

+

Column: ${x + 1}

+

Dimensions: ${dims[0]} x ${dims[1]}

+ `; + } + + const raycaster = new THREE.Raycaster(); + const mouse = new THREE.Vector2(); + + + async function onMouseMove(event) { + mouse.x = (event.clientX / containerElement.clientWidth) * 2 - 1; + mouse.y = -(event.clientY / containerElement.clientHeight) * 2 + 1; + + raycaster.setFromCamera(mouse, camera); + + const allMatrixChildren = [ + ...(matrixA ? matrixA.children : []), + ...(matrixB ? matrixB.children : []), + ...(matrixC ? matrixC.children : []) + ]; + + const intersects = raycaster.intersectObjects(allMatrixChildren, true); + + if (hoveredCube) { + hoveredCube.getObjectByName('hoverOutline').visible = false; + hoveredCube = null; + } + + if (intersects.length > 0) { + // Find the actual cube (parent of the intersected object) + hoveredCube = intersects[0].object; + while (hoveredCube && !hoveredCube.matrixName) { + hoveredCube = hoveredCube.parent; + } + + if (hoveredCube) { + const hoverOutline = hoveredCube.getObjectByName('hoverOutline'); + if (hoverOutline) { + hoverOutline.visible = true; + } + const res = await getElementValue(hoveredCube.matrixName, hoveredCube.matrixRow, hoveredCube.matrixCol); + // Log the matrix name, row, and column of the hovered cube + console.log( + // `Matrix: ${hoveredCube.matrixName}, ` + + // `Row: ${hoveredCube.matrixRow + 1}, ` + + // `Column: ${hoveredCube.matrixCol + 1}`+ + `Value: ${res.value}` + ); + + updateSideMenu(hoveredCube.matrixName, hoveredCube.matrixRow, hoveredCube.matrixCol); + } + } else { + updateSideMenu(null); + } + } + + + + + + const CUBE_SIZE = 0.2; + const GAP = 0.05; + + const COLOR_A = new THREE.Color(0.53, 0.81, 0.98); + const COLOR_B = new THREE.Color(1.0, 0.65, 0.0); + const COLOR_C = new THREE.Color(1.0, 1.0, 1.0); + const COLOR_HIGHLIGHT = new THREE.Color(0.0, 0.0, 1.0); + const COLOR_FILLED = new THREE.Color(0.0, 0.0, 1.0); + const COLOR_BACKGROUND = new THREE.Color(0.0, 0.0, 0.0); + const COLOR_EDGE = new THREE.Color(0.3, 0.3, 0.3); + const COLOR_HOVER = new THREE.Color(1.0, 1.0, 0.0); + + const scene = new THREE.Scene(); + scene.background = COLOR_BACKGROUND; + const camera = new THREE.PerspectiveCamera(45, containerElement.clientWidth / containerElement.clientHeight, 0.1, 1000); + + const renderer = new THREE.WebGLRenderer({ antialias: true }); + renderer.setSize(containerElement.clientWidth, containerElement.clientHeight); + containerElement.appendChild(renderer.domElement); + + const ambientLight = new THREE.AmbientLight(0xffffff, 0.5); + scene.add(ambientLight); + const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5); + directionalLight.position.set(10, 10, 10); + scene.add(directionalLight); + + const cubeGeometry = new THREE.BoxGeometry(CUBE_SIZE, CUBE_SIZE, CUBE_SIZE); + const edgesGeometry = new THREE.EdgesGeometry(cubeGeometry); + const lineMaterial = new THREE.LineBasicMaterial({ color: COLOR_EDGE }); + + function createCube(color, matrixName, i, j) { + const cubeMaterial = new THREE.MeshPhongMaterial({ color: color }); + const cube = new THREE.Mesh(cubeGeometry, cubeMaterial); + const edges = new THREE.LineSegments(edgesGeometry, lineMaterial); + cube.add(edges); + + const hoverGeometry = new THREE.BoxGeometry(CUBE_SIZE * 1.05, CUBE_SIZE * 1.05, CUBE_SIZE * 1.05); + const hoverEdgesGeometry = new THREE.EdgesGeometry(hoverGeometry); + const hoverOutline = new THREE.LineSegments(hoverEdgesGeometry, new THREE.LineBasicMaterial({ color: COLOR_HOVER })); + hoverOutline.visible = false; + hoverOutline.name = 'hoverOutline'; + cube.add(hoverOutline); + + cube.name = `${matrixName}_cube_${i}_${j}`; + cube.matrixName = matrixName; + cube.matrixRow = i; + cube.matrixCol = j; + + return cube; + } + + function createMatrix(dimensions, position, color, matrixName) { + const matrix = new THREE.Group(); + matrix.userData.dimensions = dimensions; + for (let i = 0; i < dimensions[0]; i++) { + for (let j = 0; j < dimensions[1]; j++) { + const cube = createCube(color, matrixName, i, j); + cube.position.set( + position.x + j * (CUBE_SIZE + GAP), + position.y - i * (CUBE_SIZE + GAP), + position.z + ); + matrix.add(cube); + } + } + return matrix; + } + + const matrixA = createMatrix(input_shape, new THREE.Vector3(-10, 10, 0), COLOR_A, 'A'); + const matrixB = createMatrix(other_shape, new THREE.Vector3(0, 10, 0), COLOR_B, 'B'); + const matrixC = createMatrix(output_shape, new THREE.Vector3(-5, -4, 0), COLOR_C, 'C'); + + scene.add(matrixA); + scene.add(matrixB); + scene.add(matrixC); + + const center = new THREE.Vector3(); + const size = new THREE.Vector3(); + const box = new THREE.Box3().setFromObject(scene); + box.getCenter(center); + box.getSize(size); + const maxDim = Math.max(size.x, size.y, size.z); + const fov = camera.fov * (Math.PI / 180); + let cameraZ = Math.abs(maxDim / 2 / Math.tan(fov / 2)); + cameraZ *= 1.5; + + camera.position.set(center.x, center.y, center.z + cameraZ); + camera.lookAt(center); + + let isPaused = false; + + const totalFrames = input_shape[0] * other_shape[1]; + + function highlightCubes(matrix, indices, highlightColor) { + indices.forEach(([i, j]) => { + if (i >= 0 && i < matrix.userData.dimensions[0] && j >= 0 && j < matrix.userData.dimensions[1]) { + const index = i * matrix.userData.dimensions[1] + j; + if (index < matrix.children.length) { + matrix.children[index].material.color.copy(highlightColor); + + } + } + }); + } + + function resetColors() { + matrixA.children.forEach(cube => cube.material.color.copy(COLOR_A)); + matrixB.children.forEach(cube => cube.material.color.copy(COLOR_B)); + } + + function animate() { + requestAnimationFrame(animate); + + if (!isPaused && frame < totalFrames) { + resetColors(); + + const row = Math.floor(frame / other_shape[1]); + const col = frame % other_shape[1]; + currentStep = frame % totalSteps + 1; + + const highlightA = Array.from({ length: input_shape[1] }, (_, i) => [row, i]); + const highlightB = Array.from({ length: other_shape[0] }, (_, i) => [i, col]); + const highlightC = [[row, col]]; + + highlightCubes(matrixA, highlightA, COLOR_HIGHLIGHT); + highlightCubes(matrixB, highlightB, COLOR_HIGHLIGHT); + highlightCubes(matrixC, highlightC, COLOR_FILLED); + + frame++; + } + + renderer.render(scene, camera); + } + + function onResize() { + camera.aspect = containerElement.clientWidth / containerElement.clientHeight; + camera.updateProjectionMatrix(); + renderer.setSize(containerElement.clientWidth, containerElement.clientHeight); + } + + const controlPanel = document.createElement('div'); + controlPanel.style.position = 'absolute'; + controlPanel.style.bottom = '10px'; + controlPanel.style.left = '10px'; + controlPanel.style.display = 'flex'; + controlPanel.style.gap = '10px'; + + const playPauseButton = document.createElement('button'); + playPauseButton.textContent = 'Play/Pause'; + playPauseButton.addEventListener('click', () => { + isPaused = !isPaused; + }); + + const resetButton = document.createElement('button'); + resetButton.textContent = 'Reset'; + resetButton.addEventListener('click', () => { + frame = 0; + resetColors(); + }); + + controlPanel.appendChild(playPauseButton); + controlPanel.appendChild(resetButton); + + containerElement.appendChild(controlPanel); + + const PAN_SPEED = 0.1; + const TILT_SPEED = 0.02; + const ZOOM_SPEED = 0.5; + let cameraRotation = new THREE.Euler(0, 0, 0, 'YXZ'); + + function onKeyDown(event) { + switch (event.key.toLowerCase()) { + case 'w': + camera.position.y += PAN_SPEED; + break; + case 's': + camera.position.y -= PAN_SPEED; + break; + case 'a': + camera.position.x -= PAN_SPEED; + break; + case 'd': + camera.position.x += PAN_SPEED; + break; + case 'arrowup': + cameraRotation.x -= TILT_SPEED; + break; + case 'arrowdown': + cameraRotation.x += TILT_SPEED; + break; + case 'arrowleft': + cameraRotation.y -= TILT_SPEED; + break; + case 'arrowright': + cameraRotation.y += TILT_SPEED; + break; + case 'o': + camera.position.z += ZOOM_SPEED; + break; + case 'p': + camera.position.z -= ZOOM_SPEED; + break; + } + camera.setRotationFromEuler(cameraRotation); + camera.updateProjectionMatrix(); + } + + window.addEventListener('resize', onResize); + window.addEventListener('keydown', onKeyDown); + containerElement.addEventListener('mousemove', onMouseMove); + + animate(); + + + function cleanup() { + window.removeEventListener('resize', onResize); + window.removeEventListener('keydown', onKeyDown); + containerElement.removeEventListener('mousemove', onMouseMove); + containerElement.innerHTML = ''; + renderer.dispose(); + scene.clear(); + } + + return cleanup; +} diff --git a/triton_viz/static/store-utils.js b/triton_viz/static/store-utils.js new file mode 100644 index 0000000..d87d78b --- /dev/null +++ b/triton_viz/static/store-utils.js @@ -0,0 +1,360 @@ +import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.155.0/build/three.module.js'; + +export function createMatMulVisualization(containerElement, op) { + const { input_shape, other_shape, output_shape } = op; + console.log(op.uuid) + fetch('/api/setop', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid: op.uuid }), + }) + .then(response => response.json()) + .then(data => console.log('Set current op:', data)) + .catch((error) => console.error('Error:', error)); + let currentStep = 0; + const totalSteps = input_shape[1]; + let frame = 0; + + + const sideMenu = document.createElement('div'); + sideMenu.style.position = 'absolute'; + sideMenu.style.top = '10px'; + sideMenu.style.right = '10px'; + sideMenu.style.width = '200px'; + sideMenu.style.padding = '10px'; + sideMenu.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; + sideMenu.style.color = 'white'; + sideMenu.style.fontFamily = 'Arial, sans-serif'; + sideMenu.style.fontSize = '14px'; + sideMenu.style.borderRadius = '5px'; + containerElement.appendChild(sideMenu); + let hoveredCube = null; + + + + + async function getElementValue( matrixName, row, col) { + let uuid = op.uuid; + const response = await fetch('/api/getValue', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid, matrixName, row, col, currentStep }), + }); + return await response.json(); + } + + + function updateSideMenu(matrix, x, y) { + if (!matrix) { + sideMenu.innerHTML = ''; + return; + } + + let matrixName; + let dims; + if (matrix === matrixA) { + matrixName = 'A'; + dims = input_shape; + } else if (matrix === matrixB) { + matrixName = 'B'; + dims = other_shape; + } else if (matrix === matrixC) { + matrixName = 'C'; + dims = output_shape; + } else { + sideMenu.innerHTML = ''; + return; + } + console.log(matrixName, "x:", (x + 1), "y:", (y + 1)); + sideMenu.innerHTML = ` +

Matrix ${matrixName}

+

Row: ${y + 1}

+

Column: ${x + 1}

+

Dimensions: ${dims[0]} x ${dims[1]}

+ `; + } + + const raycaster = new THREE.Raycaster(); + const mouse = new THREE.Vector2(); + + + async function onMouseMove(event) { + mouse.x = (event.clientX / containerElement.clientWidth) * 2 - 1; + mouse.y = -(event.clientY / containerElement.clientHeight) * 2 + 1; + + raycaster.setFromCamera(mouse, camera); + + const allMatrixChildren = [ + ...(matrixA ? matrixA.children : []), + ...(matrixB ? matrixB.children : []), + ...(matrixC ? matrixC.children : []) + ]; + + const intersects = raycaster.intersectObjects(allMatrixChildren, true); + + if (hoveredCube) { + hoveredCube.getObjectByName('hoverOutline').visible = false; + hoveredCube = null; + } + + if (intersects.length > 0) { + // Find the actual cube (parent of the intersected object) + hoveredCube = intersects[0].object; + while (hoveredCube && !hoveredCube.matrixName) { + hoveredCube = hoveredCube.parent; + } + + if (hoveredCube) { + const hoverOutline = hoveredCube.getObjectByName('hoverOutline'); + if (hoverOutline) { + hoverOutline.visible = true; + } + const res = await getElementValue(hoveredCube.matrixName, hoveredCube.matrixRow, hoveredCube.matrixCol); + // Log the matrix name, row, and column of the hovered cube + console.log( + // `Matrix: ${hoveredCube.matrixName}, ` + + // `Row: ${hoveredCube.matrixRow + 1}, ` + + // `Column: ${hoveredCube.matrixCol + 1}`+ + `Value: ${res.value}` + ); + + updateSideMenu(hoveredCube.matrixName, hoveredCube.matrixRow, hoveredCube.matrixCol); + } + } else { + updateSideMenu(null); + } + } + + + + + + const CUBE_SIZE = 0.2; + const GAP = 0.05; + + const COLOR_A = new THREE.Color(0.53, 0.81, 0.98); + const COLOR_B = new THREE.Color(1.0, 0.65, 0.0); + const COLOR_C = new THREE.Color(1.0, 1.0, 1.0); + const COLOR_HIGHLIGHT = new THREE.Color(0.0, 0.0, 1.0); + const COLOR_FILLED = new THREE.Color(0.0, 0.0, 1.0); + const COLOR_BACKGROUND = new THREE.Color(0.0, 0.0, 0.0); + const COLOR_EDGE = new THREE.Color(0.3, 0.3, 0.3); + const COLOR_HOVER = new THREE.Color(1.0, 1.0, 0.0); + + const scene = new THREE.Scene(); + scene.background = COLOR_BACKGROUND; + const camera = new THREE.PerspectiveCamera(45, containerElement.clientWidth / containerElement.clientHeight, 0.1, 1000); + + const renderer = new THREE.WebGLRenderer({ antialias: true }); + renderer.setSize(containerElement.clientWidth, containerElement.clientHeight); + containerElement.appendChild(renderer.domElement); + + const ambientLight = new THREE.AmbientLight(0xffffff, 0.5); + scene.add(ambientLight); + const directionalLight = new THREE.DirectionalLight(0xffffff, 0.5); + directionalLight.position.set(10, 10, 10); + scene.add(directionalLight); + + const cubeGeometry = new THREE.BoxGeometry(CUBE_SIZE, CUBE_SIZE, CUBE_SIZE); + const edgesGeometry = new THREE.EdgesGeometry(cubeGeometry); + const lineMaterial = new THREE.LineBasicMaterial({ color: COLOR_EDGE }); + + function createCube(color, matrixName, i, j) { + const cubeMaterial = new THREE.MeshPhongMaterial({ color: color }); + const cube = new THREE.Mesh(cubeGeometry, cubeMaterial); + const edges = new THREE.LineSegments(edgesGeometry, lineMaterial); + cube.add(edges); + + const hoverGeometry = new THREE.BoxGeometry(CUBE_SIZE * 1.05, CUBE_SIZE * 1.05, CUBE_SIZE * 1.05); + const hoverEdgesGeometry = new THREE.EdgesGeometry(hoverGeometry); + const hoverOutline = new THREE.LineSegments(hoverEdgesGeometry, new THREE.LineBasicMaterial({ color: COLOR_HOVER })); + hoverOutline.visible = false; + hoverOutline.name = 'hoverOutline'; + cube.add(hoverOutline); + + cube.name = `${matrixName}_cube_${i}_${j}`; + cube.matrixName = matrixName; + cube.matrixRow = i; + cube.matrixCol = j; + + return cube; + } + + function createMatrix(dimensions, position, color, matrixName) { + const matrix = new THREE.Group(); + matrix.userData.dimensions = dimensions; + for (let i = 0; i < dimensions[0]; i++) { + for (let j = 0; j < dimensions[1]; j++) { + const cube = createCube(color, matrixName, i, j); + cube.position.set( + position.x + j * (CUBE_SIZE + GAP), + position.y - i * (CUBE_SIZE + GAP), + position.z + ); + matrix.add(cube); + } + } + return matrix; + } + + const matrixA = createMatrix(input_shape, new THREE.Vector3(-10, 10, 0), COLOR_A, 'A'); + const matrixB = createMatrix(other_shape, new THREE.Vector3(0, 10, 0), COLOR_B, 'B'); + const matrixC = createMatrix(output_shape, new THREE.Vector3(-5, -4, 0), COLOR_C, 'C'); + + scene.add(matrixA); + scene.add(matrixB); + scene.add(matrixC); + + const center = new THREE.Vector3(); + const size = new THREE.Vector3(); + const box = new THREE.Box3().setFromObject(scene); + box.getCenter(center); + box.getSize(size); + const maxDim = Math.max(size.x, size.y, size.z); + const fov = camera.fov * (Math.PI / 180); + let cameraZ = Math.abs(maxDim / 2 / Math.tan(fov / 2)); + cameraZ *= 1.5; + + camera.position.set(center.x, center.y, center.z + cameraZ); + camera.lookAt(center); + + let isPaused = false; + + const totalFrames = input_shape[0] * other_shape[1]; + + function highlightCubes(matrix, indices, highlightColor) { + indices.forEach(([i, j]) => { + if (i >= 0 && i < matrix.userData.dimensions[0] && j >= 0 && j < matrix.userData.dimensions[1]) { + const index = i * matrix.userData.dimensions[1] + j; + if (index < matrix.children.length) { + matrix.children[index].material.color.copy(highlightColor); + + } + } + }); + } + + function resetColors() { + matrixA.children.forEach(cube => cube.material.color.copy(COLOR_A)); + matrixB.children.forEach(cube => cube.material.color.copy(COLOR_B)); + } + + function animate() { + requestAnimationFrame(animate); + + if (!isPaused && frame < totalFrames) { + resetColors(); + + const row = Math.floor(frame / other_shape[1]); + const col = frame % other_shape[1]; + currentStep = frame % totalSteps + 1; + + const highlightA = Array.from({ length: input_shape[1] }, (_, i) => [row, i]); + const highlightB = Array.from({ length: other_shape[0] }, (_, i) => [i, col]); + const highlightC = [[row, col]]; + + highlightCubes(matrixA, highlightA, COLOR_HIGHLIGHT); + highlightCubes(matrixB, highlightB, COLOR_HIGHLIGHT); + highlightCubes(matrixC, highlightC, COLOR_FILLED); + + frame++; + } + + renderer.render(scene, camera); + } + + function onResize() { + camera.aspect = containerElement.clientWidth / containerElement.clientHeight; + camera.updateProjectionMatrix(); + renderer.setSize(containerElement.clientWidth, containerElement.clientHeight); + } + + const controlPanel = document.createElement('div'); + controlPanel.style.position = 'absolute'; + controlPanel.style.bottom = '10px'; + controlPanel.style.left = '10px'; + controlPanel.style.display = 'flex'; + controlPanel.style.gap = '10px'; + + const playPauseButton = document.createElement('button'); + playPauseButton.textContent = 'Play/Pause'; + playPauseButton.addEventListener('click', () => { + isPaused = !isPaused; + }); + + const resetButton = document.createElement('button'); + resetButton.textContent = 'Reset'; + resetButton.addEventListener('click', () => { + frame = 0; + resetColors(); + }); + + controlPanel.appendChild(playPauseButton); + controlPanel.appendChild(resetButton); + + containerElement.appendChild(controlPanel); + + const PAN_SPEED = 0.1; + const TILT_SPEED = 0.02; + const ZOOM_SPEED = 0.5; + let cameraRotation = new THREE.Euler(0, 0, 0, 'YXZ'); + + function onKeyDown(event) { + switch (event.key.toLowerCase()) { + case 'w': + camera.position.y += PAN_SPEED; + break; + case 's': + camera.position.y -= PAN_SPEED; + break; + case 'a': + camera.position.x -= PAN_SPEED; + break; + case 'd': + camera.position.x += PAN_SPEED; + break; + case 'arrowup': + cameraRotation.x -= TILT_SPEED; + break; + case 'arrowdown': + cameraRotation.x += TILT_SPEED; + break; + case 'arrowleft': + cameraRotation.y -= TILT_SPEED; + break; + case 'arrowright': + cameraRotation.y += TILT_SPEED; + break; + case 'o': + camera.position.z += ZOOM_SPEED; + break; + case 'p': + camera.position.z -= ZOOM_SPEED; + break; + } + camera.setRotationFromEuler(cameraRotation); + camera.updateProjectionMatrix(); + } + + window.addEventListener('resize', onResize); + window.addEventListener('keydown', onKeyDown); + containerElement.addEventListener('mousemove', onMouseMove); + + animate(); + + + function cleanup() { + window.removeEventListener('resize', onResize); + window.removeEventListener('keydown', onKeyDown); + containerElement.removeEventListener('mousemove', onMouseMove); + containerElement.innerHTML = ''; + renderer.dispose(); + scene.clear(); + } + + return cleanup; +} diff --git a/triton_viz/static/store.js b/triton_viz/static/store.js new file mode 100644 index 0000000..470b327 --- /dev/null +++ b/triton_viz/static/store.js @@ -0,0 +1,221 @@ +import * as THREE from 'https://cdn.jsdelivr.net/npm/three@0.155.0/build/three.module.js'; +import { + setupScene, + setupGeometries, + createTensor, + calculateTensorSize, + updateCubeColor, + setupCamera, + setupEventListeners, + cameraControls +} from './store-utils.js'; + +export function createStoreVisualization(containerElement, op) { + + console.log(op.uuid); + fetch('/api/setop', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid: op.uuid }), + }) + .then(response => response.json()) + .then(data => console.log('Set current op:', data)) + .catch((error) => console.error('Error:', error)); + + let currentStep = 0; + let frame = 0; + let isPaused = false; + + const sideMenu = createSideMenu(containerElement); + let hoveredCube = null; + + const COLOR_GLOBAL = new THREE.Color(0.2, 0.2, 0.2); // Dark Gray + const COLOR_SLICE = new THREE.Color(0.0, 0.7, 1.0); // Cyan (starting color for global slice) + const COLOR_LEFT_SLICE = new THREE.Color(1.0, 0.0, 1.0); // Magenta (starting color for left slice) + const COLOR_LOADED = new THREE.Color(1.0, 0.8, 0.0); // Gold (final color for both slices) + const COLOR_BACKGROUND = new THREE.Color(0.0, 0.0, 0.0); // Black + + const { scene, camera, renderer } = setupScene(containerElement, COLOR_BACKGROUND); + const { cubeGeometry, edgesGeometry, lineMaterial } = setupGeometries(); + + const globalTensor = createTensor(op.global_shape, op.global_coords, COLOR_GLOBAL, 'Global', cubeGeometry, edgesGeometry, lineMaterial); + const sliceTensor = createTensor(op.slice_shape, op.slice_coords, COLOR_LEFT_SLICE, 'Slice', cubeGeometry, edgesGeometry, lineMaterial); + + // Position slice tensor + const globalSize = calculateTensorSize(op.global_shape); + sliceTensor.position.set(globalSize.x + 5, 0, 0); // Adjusted tensor spacing + + scene.add(globalTensor); + scene.add(sliceTensor); + + addLabels(scene, globalTensor, sliceTensor); + setupCamera(scene, camera); + + const totalFrames = op.global_coords.length * 2 + 30; + + const raycaster = new THREE.Raycaster(); + const mouse = new THREE.Vector2(); + + const onKeyDown = cameraControls(camera, new THREE.Euler(0, 0, 0, 'YXZ')); + setupEventListeners(containerElement, camera, renderer, onMouseMove, onKeyDown); + animate(); + + async function onMouseMove(event) { + mouse.x = (event.clientX / containerElement.clientWidth) * 2 - 1; + mouse.y = -(event.clientY / containerElement.clientHeight) * 2 + 1; + + raycaster.setFromCamera(mouse, camera); + + const allTensorChildren = [ + ...globalTensor.children, + ...sliceTensor.children + ]; + + const intersects = raycaster.intersectObjects(allTensorChildren, true); + + if (hoveredCube) { + hoveredCube.getObjectByName('hoverOutline').visible = false; + hoveredCube = null; + } + + if (intersects.length > 0) { + hoveredCube = intersects[0].object; + while (hoveredCube && !hoveredCube.tensorName) { + hoveredCube = hoveredCube.parent; + } + + if (hoveredCube) { + const hoverOutline = hoveredCube.getObjectByName('hoverOutline'); + if (hoverOutline) { + hoverOutline.visible = true; + } + + updateSideMenu(hoveredCube.tensorName, hoveredCube.tensor0, hoveredCube.tensor1, hoveredCube.tensor2, undefined); + + const res = await getElementValue(hoveredCube.tensorName, hoveredCube.tensor0, hoveredCube.tensor1, hoveredCube.tensor2); + + updateSideMenu(hoveredCube.tensorName, hoveredCube.tensor0, hoveredCube.tensor1, hoveredCube.tensor2, res.value); + + console.log(`Value: ${res.value}`); + } + } else { + updateSideMenu(null); + } + } + + function animate() { + requestAnimationFrame(animate); + + if (!isPaused && frame < totalFrames) { + const index = Math.floor(frame / 2); + const factor = (frame % 2) / 1.0; + + if (index < op.global_coords.length) { + const globalCoord = op.global_coords[index]; + const sliceCoord = op.slice_coords[index]; + + updateCubeColor(globalTensor, globalCoord, COLOR_GLOBAL, COLOR_SLICE, factor); + updateCubeColor(sliceTensor, sliceCoord, COLOR_LEFT_SLICE, COLOR_LOADED, factor); + + highlightCurrentOperation(globalTensor, globalCoord, sliceTensor, sliceCoord); + updateInfoPanel(globalCoord, sliceCoord, index); + } + + frame++; + } + + renderer.render(scene, camera); + } + + function highlightCurrentOperation(globalTensor, globalCoord, sliceTensor, sliceCoord) { + globalTensor.children.forEach(cube => cube.material.emissive.setHex(0x000000)); + sliceTensor.children.forEach(cube => cube.material.emissive.setHex(0x000000)); + + const globalCube = globalTensor.children.find(c => + c.tensor0 === globalCoord[0] && c.tensor1 === globalCoord[1] && c.tensor2 === globalCoord[2] + ); + const sliceCube = sliceTensor.children.find(c => + c.tensor0 === sliceCoord[0] && c.tensor1 === sliceCoord[1] && c.tensor2 === sliceCoord[2] + ); + + if (globalCube) globalCube.material.emissive.setHex(0x444444); + if (sliceCube) sliceCube.material.emissive.setHex(0x444444); + } + + async function getElementValue(tensorName, x, y, z) { + let uuid = op.uuid; + const response = await fetch('/api/getStoreValue', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ uuid, tensorName, x, y, z }), + }); + return await response.json(); + } + + function updateSideMenu(tensorName, x, y, z, value) { + if (!tensorName) { + sideMenu.innerHTML = ''; + return; + } + + let dims = tensorName === 'Global' ? op.global_shape : op.slice_shape; + sideMenu.innerHTML = ` +

${tensorName} Tensor

+

X: ${x + 1}

+

Y: ${y + 1}

+

Z: ${z + 1}

+

Dimensions: ${dims.join(' x ')}

+

Value: ${value !== undefined ? value : 'Storeing...'}

+ `; + } + + function updateInfoPanel(globalCoord, sliceCoord, index) { + sideMenu.innerHTML = ` +

Current Operation

+

Global Coords: (${globalCoord.join(', ')})

+

Slice Coords: (${sliceCoord.join(', ')})

+

Progress: ${index + 1}/${op.global_coords.length}

+ `; + } + + function createSideMenu(container) { + const menu = document.createElement('div'); + menu.style.position = 'absolute'; + menu.style.top = '10px'; + menu.style.right = '10px'; + menu.style.width = '200px'; + menu.style.padding = '10px'; + menu.style.backgroundColor = 'rgba(0, 0, 0, 0.7)'; + menu.style.color = 'white'; + menu.style.fontFamily = 'Arial, sans-serif'; + menu.style.fontSize = '14px'; + menu.style.borderRadius = '5px'; + container.appendChild(menu); + return menu; + } + + function addLabels(scene, globalTensor, sliceTensor) { + addLabel(scene, "Global Tensor", globalTensor.position); + addLabel(scene, "Slice Tensor", sliceTensor.position); + } + + function addLabel(scene, text, position) { + const canvas = document.createElement('canvas'); + const context = canvas.getContext('2d'); + context.font = 'Bold 24px Arial'; + context.fillStyle = 'white'; + context.fillText(text, 0, 24); + + const texture = new THREE.CanvasTexture(canvas); + const material = new THREE.SpriteMaterial({ map: texture }); + const sprite = new THREE.Sprite(material); + sprite.position.set(position.x, position.y + 2, position.z); + sprite.scale.set(4, 2, 1); + scene.add(sprite); + } + +} diff --git a/triton_viz/static/visualization.js b/triton_viz/static/visualization.js new file mode 100644 index 0000000..e0d157c --- /dev/null +++ b/triton_viz/static/visualization.js @@ -0,0 +1,389 @@ +import { GridBlock } from './gridblock.js'; +import { createInfoPopup, showInfoPopup } from './infoPopup.js'; +let globalData; +let currentView = 'main'; +let canvas, ctx; +let maxX = 0, maxY = 0, maxZ = 0; +let sliders = [], zSlider, precomputeButton, kernelGrid; +let backButton; +let currentBlockData = null; +let isInitialized = false; +let containerElement; +let infoPopup; +let infoButton; +function switchToMainView() { + currentView = 'main'; + if (currentBlockData) { + currentBlockData.hideDetailedView(); + currentBlockData = null; + } + containerElement.style.pointerEvents = 'none'; + containerElement.style.display = 'none'; + containerElement.innerHTML = ''; + + canvas.style.display = 'block'; + draw(); +} + +function initializeApp() { + canvas = document.getElementById('canvas'); + if (!canvas) { + console.error('Canvas element not found'); + return; + } + ctx = canvas.getContext('2d'); + if (!ctx) { + console.error('Unable to get 2D context from canvas'); + return; + } + canvas.width = window.innerWidth; + canvas.height = window.innerHeight; + + canvas.addEventListener('mousedown', handleMouseEvent); + canvas.addEventListener('mouseup', handleMouseEvent); + canvas.addEventListener('mousemove', handleMouseEvent); + + containerElement = document.getElementById('visualization-container'); + if (!containerElement) { + console.error('Visualization container element not found'); + return; + } + + containerElement.style.pointerEvents = 'none'; + containerElement.style.display = 'none'; + + fetchData(); +} + +class Slider { + constructor(x, y, width, height, label, min_value = -1, max_value = 100) { + this.rect = { x, y, width, height }; + this.label = label; + this.min = min_value; + this.max = max_value; + this.value = min_value; + this.grabbed = false; + this.enabled = true; + } + + draw(ctx) { + if (!this.enabled) return; + ctx.fillStyle = '#3c3c46'; + ctx.fillRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height); + const buttonX = this.rect.x + (this.value - this.min) / (this.max - this.min) * this.rect.width; + ctx.fillStyle = '#c8c8c8'; + ctx.fillRect(buttonX - 5, this.rect.y - 2, 10, this.rect.height + 4); + + ctx.fillStyle = '#c8c8c8'; + ctx.font = '18px Arial'; + ctx.fillText(this.label, this.rect.x, this.rect.y - 10); + ctx.fillText(this.value.toString(), this.rect.x + this.rect.width + 10, this.rect.y + this.rect.height / 2 + 5); + } + + handleEvent(event) { + if (!this.enabled) return; + if (event.type === 'mousedown') { + if (this.isPointInside(event.offsetX, event.offsetY)) { + this.grabbed = true; + } + } else if (event.type === 'mouseup') { + this.grabbed = false; + } else if (event.type === 'mousemove' && this.grabbed) { + const mouseX = event.offsetX; + this.value = Math.round((mouseX - this.rect.x) / this.rect.width * (this.max - this.min) + this.min); + this.value = Math.max(this.min, Math.min(this.max, this.value)); + } + } + + isPointInside(x, y) { + return x >= this.rect.x && x <= this.rect.x + this.rect.width && + y >= this.rect.y && y <= this.rect.y + this.rect.height; + } +} + +class Button { + constructor(x, y, width, height, text, isIcon = false) { + this.rect = { x, y, width, height }; + this.text = text; + this.isIcon = isIcon; + this.color = '#3c3c46'; + this.hoverColor = '#50505a'; + this.clickColor = '#64646e'; + this.isHovered = false; + this.isClicked = false; + this.clickTime = 0; + } + + draw(ctx) { + let color = this.color; + if (this.isClicked && Date.now() - this.clickTime < 100) { + color = this.clickColor; + } else if (this.isHovered) { + color = this.hoverColor; + } + + ctx.fillStyle = color; + ctx.fillRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height); + ctx.strokeStyle = '#c8c8c8'; + ctx.strokeRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height); + + ctx.fillStyle = '#c8c8c8'; + ctx.font = this.isIcon ? 'bold 24px Arial' : '18px Arial'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; + ctx.fillText(this.text, this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2); + } + + handleEvent(event) { + const { offsetX, offsetY } = event; + this.isHovered = this.isPointInside(offsetX, offsetY); + if (event.type === 'mousedown' && this.isHovered) { + this.isClicked = true; + this.clickTime = Date.now(); + console.log(`Button '${this.text}' clicked!`); + } else if (event.type === 'mouseup') { + this.isClicked = false; + } + } + + isPointInside(x, y) { + return x >= this.rect.x && x <= this.rect.x + this.rect.width && + y >= this.rect.y && y <= this.rect.y + this.rect.height; + } +} + +class KernelGrid { + constructor(x, y, width, height, gridSize, visualizationData) { + this.rect = { x, y, width, height }; + this.gridSize = gridSize; + this.visualizationData = visualizationData; + this.currentZ = 0; + this.blocks = []; + this.calculateBlockSize(); + this.createBlocks(); + this.selectedBlock = null; + this.filterValues = [-1, -1, -1]; // Default filter values for x, y, z + } + + calculateBlockSize() { + this.blockWidth = Math.floor(this.rect.width / this.gridSize[0]) - 1; + this.blockHeight = Math.floor(this.rect.height / this.gridSize[1]) - 1; + } + + createBlocks() { + this.blocks = []; + for (let y = 0; y < this.gridSize[1]; y++) { + for (let x = 0; x < this.gridSize[0]; x++) { + const blockX = this.rect.x + x * (this.blockWidth + 1); + const blockY = this.rect.y + y * (this.blockHeight + 1); + const gridKey = `(${x}, ${y}, ${this.currentZ})`; + const blockData = this.visualizationData[gridKey] || []; + const block = new GridBlock( + blockX, blockY, this.blockWidth, this.blockHeight, + x, y, this.currentZ, blockData, + switchToMainView, + containerElement, + canvas, + draw + ); + this.blocks.push(block); + } + } + } + + draw(ctx) { + ctx.fillStyle = '#F0F0F0'; + ctx.fillRect(this.rect.x, this.rect.y, this.rect.width, this.rect.height); + this.blocks.forEach(block => { + if (this.shouldDrawBlock(block)) { + block.draw(ctx); + } + }); + } + + shouldDrawBlock(block) { + return (this.filterValues[0] === -1 || block.gridPosition.x === this.filterValues[0]) && + (this.filterValues[1] === -1 || block.gridPosition.y === this.filterValues[1]) && + (this.filterValues[2] === -1 || block.gridPosition.z === this.filterValues[2]); + } + + updateZ(z) { + this.currentZ = z; + this.filterValues[2] = z; + this.blocks.forEach(block => { + block.gridPosition.z = z; + const gridKey = `(${block.gridPosition.x}, ${block.gridPosition.y}, ${z})`; + block.blockData = this.visualizationData[gridKey] || []; + }); + } + + handleClick(x, y) { + const clickedBlock = this.blocks.find(block => + block.isPointInside(x, y) && this.shouldDrawBlock(block) + ); + if (clickedBlock) { + console.log(`Clicked block at (${clickedBlock.gridPosition.x}, ${clickedBlock.gridPosition.y}, ${clickedBlock.gridPosition.z})`); + if (this.selectedBlock) { + this.selectedBlock.hideDetailedView(); + } + this.selectedBlock = clickedBlock; + clickedBlock.showDetailedView(); + return clickedBlock; + } + return null; + } + + handleMouseMove(x, y) { + this.blocks.forEach(block => { + if (this.shouldDrawBlock(block)) { + block.handleMouseMove(x, y); + } else { + block.isHovered = false; + } + }); + } + + updateFilter(dimension, value) { + this.filterValues[dimension] = value; + } +} + +function determineMaxValues(visualizationData) { + maxX = 0; + maxY = 0; + maxZ = 0; + const keys = Object.keys(visualizationData); + keys.forEach(key => { + const [x, y, z] = key.replace(/[()]/g, '').split(', ').map(Number); + if (x > maxX) maxX = x; + if (y > maxY) maxY = y; + if (z > maxZ) maxZ = z; + }); +} + +function initializeUIElements() { + sliders = [ + new Slider(1300, 50, 250, 20, "Program Id 0", -1, maxX), + new Slider(1300, 120, 250, 20, "Program Id 1", -1, maxY), + new Slider(1300, 190, 250, 20, "Program Id 2", -1, maxZ) + ]; + + zSlider = new Slider(50, 860, 1200, 20, "Z-axis", 0, maxZ); + zSlider.enabled = maxZ > 0; + + precomputeButton = new Button(1300, 260, 250, 40, "Precompute"); + kernelGrid = new KernelGrid(50, 50, 1200, 800, [maxX + 1, maxY + 1, maxZ + 1], globalData.ops.visualization_data); + backButton = new Button(50, 50, 100, 40, "Back"); + const buttonSize = 40; + const margin = 10; + infoButton = new Button( + canvas.width - buttonSize - margin, + margin, + buttonSize, + buttonSize, + "i", + true + ); + + isInitialized = true; + + infoPopup = createInfoPopup(); +} + +function switchToTensorView(clickedBlock) { + currentView = 'tensor'; + currentBlockData = clickedBlock; + console.log("Switched to tensor view. Block data:", clickedBlock); + + containerElement.style.pointerEvents = 'auto'; + containerElement.style.display = 'block'; + clickedBlock.showDetailedView(); + + canvas.style.display = 'none'; +} + +function handleMouseEvent(event) { + if (!isInitialized) { + console.warn('UI elements not initialized yet'); + return; + } + if (infoButton) { + infoButton.handleEvent(event); + if (event.type === 'mousedown' && infoButton.isHovered) { + showInfoPopup(infoPopup); + } + } + const { offsetX, offsetY } = event; + if (currentView === 'main') { + sliders.forEach((slider, index) => { + slider.handleEvent(event); + if (kernelGrid) { + kernelGrid.updateFilter(index, slider.value); + } + }); + if (zSlider && zSlider.enabled) { + zSlider.handleEvent(event); + if (kernelGrid) { + kernelGrid.updateZ(zSlider.value); + } + } + if (precomputeButton) { + precomputeButton.handleEvent(event); + } + if (kernelGrid) { + kernelGrid.handleMouseMove(offsetX, offsetY); + if (event.type === 'mousedown') { + const clickedBlock = kernelGrid.handleClick(offsetX, offsetY); + if (clickedBlock) { + switchToTensorView(clickedBlock); + } + } + } + } else if (currentView === 'tensor') { + if (backButton) { + backButton.handleEvent(event); + if (event.type === 'mousedown' && backButton.isHovered) { + switchToMainView(); + } + } + } + draw(); +} + +function draw() { + if (!ctx) { + console.error('Canvas context not available'); + return; + } + + ctx.fillStyle = '#1e1e28'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + if (currentView === 'main' || currentView === 'main') { + if (kernelGrid) kernelGrid.draw(ctx); + sliders.forEach(slider => slider.draw(ctx)); + if (zSlider && zSlider.enabled) { + zSlider.draw(ctx); + } + if (precomputeButton) precomputeButton.draw(ctx); + if (infoButton) { + infoButton.draw(ctx); + } + } +} + +async function fetchData() { + try { + const response = await fetch('/api/data'); + globalData = await response.json(); + console.log(globalData); + + determineMaxValues(globalData.ops.visualization_data); + initializeUIElements(); + draw(); + } catch (error) { + console.error('Error fetching data:', error); + } +} + +initializeApp(); \ No newline at end of file diff --git a/triton_viz/templates/index.html b/triton_viz/templates/index.html new file mode 100644 index 0000000..b8eaebe --- /dev/null +++ b/triton_viz/templates/index.html @@ -0,0 +1,47 @@ + + + + + + Kernel Launch Configuration Visualization + + + + +
+ + + + diff --git a/triton_viz/tooltip.py b/triton_viz/tooltip.py index 2a3f069..8ff971d 100644 --- a/triton_viz/tooltip.py +++ b/triton_viz/tooltip.py @@ -7,13 +7,18 @@ "ExpandDims": "Shows the total number of expand_dims operations performed in this kernel.", "Dot": "Shows the total number of dot operations performed in this kernel.", "Reduce": "Shows the total number of reduce operations performed in this kernel.", - "Total number of bytes loaded": "Shows the total number of bytes loaded (mask=True).Note:On GPUs, this metric does not equate to the total number of bytes loaded from global memory (DRAM), as some data accesses may be handled through GPU caches.", + "Total number of bytes loaded": "Shows the total number of bytes loaded (mask=True). Note: On GPUs, this metric does not equate to the total number of bytes loaded from global memory (DRAM), as some data accesses may be handled through GPU caches.", "Masked Load Ratio": "Ratio of total number of bytes loaded (mask=True)/total number of bytes loaded (mask=True) + (mask=False).", "Total number of bytes stored": "Shows the total number of bytes stored (mask=True).", "Masked Store Ratio": "Ratio of total number of bytes stored (mask=True)/total number of bytes stored (mask=True) + (mask=False).", } +def get_tooltip_data(df): + """Return the tooltip data in a format suitable for JSON serialization.""" + return df.to_dict() + + def create_tooltip(df): styles = """