Performance Compare Tool

   1569   2   1
User Avatar
Member
900 posts
Joined: Feb. 2016
Offline
I'm developing a tool to compare the performance of various node graphs and display the results in the viewport. The tool will be available for free.

Here's how it works:

SINGLE SESSION MODE
  1. Select a group of nodes to profile, enclose them in a network box using the shortcut SHIFT+O, and connect it to one of the 4 inputs of the HDA.
  2. Repeat this process for another group of nodes you want to include in the comparison.
  3. Then, launch the comparison to cook the graphs and profile them.
  4. The results are visualized in the viewport.

MULTIPLE SESSIONS MODE
This is a basic wedger tool that runs a series of performance comparisons by setting various parameter values (within the given range) for the testing node graphs.
For instance, you can test the performance of the node graphs at different polycounts or any other integer or float parameter you specify.
This mode is surprisingly useful.

PROGRESS STATUS towards First Release

DONE:
  • Core logic for profiling and returning timings (without PDG, for now).
  • Viewport UI Widget: Cook Time Chart with timeline zoom and scroll functionality.
  • Viewport UI Widget: List of Node Graph names with button to hide/show curves on the Cook Time Chart

TO DO:
  • Viewport UI Widget: Visualize parameter changes across sessions (at the moment the Cook Time Chart alone is useless without this information visualized)
  • Viewport UI Widget: Speed Gain Graph to show the relative speed of the node graphs compared to each other.
  • Color code the network boxes based on their performance speed.
  • Viewport UI Widget: Display system information such as hardware, platform, Houdini version, etc.
  • Save a screenshot of the Cook Time Chart and the whole interface in the viewport.
  • Implement Python States for basic viewport interaction, including binding timeline zoom and scroll to mouse input.
  • Refactor and optimize the HDA, especially addressing performance issues caused by the Font SOP. Consider creating a custom Fast Font SOP or using Python states for a custom visualizer.
  • Educational example file demonstrating how the HDA works while comparing various workflows and showcasing best practices to adopt in Houdini.
  • Documentation for the HDA.
Edited by Andr - Oct. 6, 2023 18:43:25

Attachments:
time_chart.jpg (466.3 KB)
parm_ui_1.jpg (124.5 KB)
parm_ui_0.jpg (87.7 KB)
network_view.jpg (247.0 KB)

User Avatar
Member
61 posts
Joined: Feb. 2020
Offline
Looks great!

Would be happy to test!
User Avatar
Member
651 posts
Joined: Feb. 2017
Offline
Hey Andr,

This looks super useful!
I hope you have time to make progress with this.

Cheers
CYTE
  • Quick Links