* work
* basic stuff
* work
* also reset
* moving through time
* cleanup
* proper zoom
* add livereload.js
pip install livereload
livereload tinygrad/viz
* minor
* fixed width, remove viewbox
* bit of flexbox magic
* show pid/tid
* merge loops
* min-height
* redo some layout stuff
* create cell groups
* text is hard
* javascript Math.min causes "Maximum call stack size"
bert repro: VIZ=1 PYTHONPATH=. DEFAULT_FLOAT=HALF BS=66 GPUS=6 BERT_LAYERS=2 FUSE_ARANGE=1 MODEL=bert python3 examples/mlperf/model_train.py
* fix recursion issue
* no viz/server changes
* fix test_viz
* everything is a g
* text is easy
* no it's still hard
* livereload+notes
* height: 100% fixes the device bug
* start canvas work
* base canvas
* take chrome's stuff
* serve chrome's thing
* fetch traces from get_profile
* remove junk
* remove some more
* bring everything back again
* dispatch resize events
* base ticks
* hook d3.zoom
* zoom on the x axis
* bring filter back, makes ctrl+drag possible
* remove junk
* Revert "remove junk"
This reverts commit 4987e7bec1.
* draws something, the zooms aren't right
* move to canvas
* fix zooming
* Revert "Revert "remove junk""
This reverts commit 5aac2034fb.
* space key resets zoom
* Divide timelines by device on y axis
* Show kernel names when the width allows
* Clicking on kernel opens it in the kernel graph
* remove livereload.js
* reset diff
* base diff:
- fetch traceEvents
- displayGraph
- flexbox layout
- rest of canvas
* rescale in-place is faster, d3's rescaleX creates a copy
* less
* aesthetics
* map names
* first viz is profiler
* this will work when i make canvas once
* initial cleanups
* factor out of loop
* refactor + only show devices with events
* properly align program rects
* cleaner tick lines
* padding
* listen for resize
* simple zoom
* space more
* i always end up making zoom globl
* how is this ever allowed
* clicking works again
* back button goes back to the same zoom level
* work
* more work
* bring that back
* coloring work and simplify
* black
* keep perfetto button for comparison
* better
* ph===X
* simplify history stuff
* temp: handcoded
* test: flamegraph style leveling
* Revert "temp: handcoded"
This reverts commit bdcd538e88.
* disable flamegraph
* group by pid
* factor y and height out of render
* now flamegraph is easy
* livereload stuff
* remove that
* less
* Change divison by power of two to always use shift
* Change test to test int instead of uint
* simplify condition
* add old rule back with comment
* remove import
* use sresolve instead of simplify
* use keyword in simplify instead of sresolve
* webgpu cast y to uint
* remove comment
* explicitly set dtype in wgsl
* without simplify
* undo simplify kwarg
* change test to test both int32 and uint32
* remove .relu() call in several conv tests in test_ops
testing negative parts double the effectiveness. keep the relu between two convs and the tests that explicitly test relu
* relax tol
* move view left to the outer graph
* global view right
* dont need that one
* remove comment
* test kernelize
* simple
* split onnx, test sdxl null
* fix testing
* ugh, wrong one
* Update test.yml
* non recursive top_down_rewrite
* nicer algorithm
* rewrite bottom up also
* only top down is broken?
* simpler iterative algo
* no recursion errors
* top down and bottom up
* unified rewrite
* simpler rewrite
* clean up comments
* move that comment
* move high level stuff to unit tests [pr]
* process replay on unit tests
* fix pr, less compute
* set omp num threads
* set 200MB buffer size limit
* delete junk
* fix tests
* faster
* move test_indexing to unit
* faster
* remove del spam from CI
* more
* preconstruct default buffer spec
* ignore those errors
* check exception
* more exception check
* skip stuff
* smaller tests mean faster tests
* a few more
`test_data_parallel_resnet_train_step` is already skipped on LLVM/CPU:
```python
@unittest.skipIf(CI and REAL_DEV in ("CUDA", "NV", "LLVM", "CPU"), "slow, and flaky on LLVM/CPU")
@unittest.skipIf(REAL_DEV == "WEBGPU" and not OSX, "WEBGPU Vulkan can only run kernels with up to 10 buffers")
def test_data_parallel_resnet_train_step(self):
```
It looks like `test_data_parallel_resnet` (no `_train_step`) is flaky in a similar way:
https://github.com/tinygrad/tinygrad/actions/runs/15472667248/job/43560773882?pr=10642#step:9:64
* remove unnecessary 'argfix' because 'view' is an alias to 'reshape'. all functionality must be inside 'reshape'
* added the same set of unit tests for 'view' as for 'reshape' since 'view' is just an alias for 'reshape'
* improved tests for 'view' op
* skip a few slow tests
* use a venv for python packages
* create venv
* no user, it's in venv
* ignore venv
* venv
* new cache key
* try that
* this
* version the python cache