Comments (7)
this was the year!!! thanks @benvanik
from iree.
1+ years on and progress is being made on this. New threading system will have statistics built-in and help me define the API we want to expose for this (likely something similar to feedback buffers).
from iree.
Maybe this year? :P
I think the first step is to get tracy recording Vulkan times and the task system appearing as a dedicated execution context in tracy as well. That will unblock performance investigations. I'm still not sure we have solid use cases for programmatic fine-grained profiling yet though those may be useful in parameter searches (though with all the usual caveats of applicability of timings they may not be).
from iree.
Do you have some pointers on what would be needed to do to have tracy recoding Vulkan times and what would the result look like? On Android we have pretty much no useful tools for profiling within a command buffer. I hacked up some timestamp queries to be able to get a breakdown for mobile Bert but it is obviously not a sustainable solution. So this is probably our best bet to be able to do at least some basic profiling on phones and I can help out with implementation.
from iree.
I've got an old set of changes that enables Vulkan in tracy that I'll revive and get working. The issue I ran into last time (and what prevented me from committing it) was that tracy could not at the time render disjoint or overlapping zones, meaning that if there was any asynchronous or overlapping execution it would pad every zone out such that they were perfectly nested. I remember seeing that fiber support was getting added to tracy (in some form), and if it has landed then we can use that to allow the out-of-order zones. Otherwise, the tracy support only produces useful results if there's single dispatches between global barriers such that no two dispatches ever overlap and that's not very useful for anything but microbenchmarks (which could still be useful, but not general-purpose and with all the caveats of applicability microbenchmarks on GPUs have).
from iree.
Fiber support doesn't seem to have landed, but what we really want is wolfpld/tracy#149 - that's how I accomplished this in wtf and it worked really well. Unfortunately it looks like it's not planned work so I'm not sure what to do there.
With the new feature allowing multiple GPU context tracks I can at least split up queues such that queues can overlap, but within each queue the numbers you'll be getting will not account for overlap :(
from iree.
I'm going to avoid doing any HAL work here and instead just add Vulkan support directly to the Vulkan HAL. When we want programmatic queries we'll need to add explicit APIs to the HAL but for just seeing timing in tracy we can avoid that.
from iree.
Related Issues (20)
- Remove torch strict symbolic shape setup passes.
- Runtime CPU load balance strategy for local-task
- Re-enable w7900 CI jobs when the runner is stable again HOT 1
- pkgci_test_tensorflow_cpu.yml errors downloading python packages HOT 1
- Packing the result of broadcast introduces huge memory allocation
- Transform Dialect pipelines set translation_info to None HOT 1
- dynamic_gather does not support properties on Windows HOT 2
- LinalgExt ops don't support fusion HOT 1
- [rocm] `iree-rocm-target-chip` should take entire GCN arch name when available
- VmModule.wrap_buffer is unreliable when sourced from compiler Output.map_memory()
- [CPU] Inefficient img2col tensor kernel HOT 2
- [CPU] Too many kernel launches for some mmt4d ops HOT 1
- failed to legalize operation 'torch.aten.arange.start_step' HOT 1
- Migrate lint checks to pre-commit? HOT 1
- [Codegen] Move `LoweringConfigAttr` to an attribute interface HOT 1
- Compilation error for iree_linalg_ext.scan HOT 4
- [flow] AnnotateDispatches does not spell out linalg ops in LinalgExt fusion
- Compilation error for SHARK-TestSuite (onnx/models/RAFT_vaiq_int8)
- [LLVMCPU] Bad packing codegen with different `outer_dims_perm` HOT 2
- Missing propagation for `unpack -> collapse_shape` to `collpase_shape -> unpack`. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from iree.