| Previous Topic (Particle Channels Editor Examples) | Up (Particle Channels Editor) | Next Topic (None) |
Performance and Benchmarks
Measured Speed Of Single-Threaded Operators
The initial implementation of the KCM Compiler in Beta 4 was single-threaded. Below you will find the results of the first benchmarks using that version, followed by the Multi-Threaded version in Beta 5.
- Vector Channel Input: 9.14077 MP/sec
- Vector Add: 37.594 MP/sec
- Vector Multiply: 14.9031 MP/sec
- Blend: 26.6667 MP/sec
- Clamp: 11.8624 MP/sec
- KCM Time Using 10M particles
- Loading Position into Color channel: 1.094 seconds
- Loading and Inverting Position into Color channel: 1.25 seconds
- Loading Position and Adding a Vector: 1.36 seconds
- Loading Position and Multiplying by a Vector: 1.765 seconds
- Loading Position and Blending with a Vector using a Float: 1.469 seconds
- Loading Position and Blending with a Vector using Position Channel: 1.422 seconds
- Loading Position and Blending with Color Channel using Position Channel: 1.516 seconds
- Loading Position, Multiplying by a Float and Blending with Color Channel using Position Channel: 1.844 seconds
- Loading Position, Clamping by two vectors and outputting as Color: 2.016 seconds
- Outputting one float to Density Channel: 1.001 seconds
- Multiplying two Floats and outputting to Density: 1.126 seconds
- Loading Density, Multiplying by Float and outputting to Density: 1.359 seconds
- Simple KCM Comparison To Box #3
- Created a Standard PFlow creating 10M particles on frame 0 with random Positions in a 100x100x100 box.
- Added a Data Operator which reads the Position channel, multiplies by 0.01 and writes to the Vertex Color Channel.
- Generating particles and rendering without the Data Operator took 15.89 seconds.
- Generating particles and rendering with the Data Operator took 17.656 seconds.
- The Data Operator overhead was thus 1.766 seconds.
- Saved the same 10M particles to PRT file.
- Loaded the PRT file using a PRT Loader.
- Added a KCM with a Position channel node multiplied by a Float Input of 0.01 and writing to the Color channel.
- Loading and rendering without the KCM took 11.204 seconds.
- Loading and rendering with the Single-Threaded KCM took 12.187 seconds.
- Thus, the Single-Threaded KCM overhead was 0.983 seconds, or 1.79654 times faster than a comparable Box #3 operator.
- Loading and rendering with the Multi-Threaded KCM took 11.829 seconds.
- Thus, the Mutli-Threaded KCM overhead was 0.625 seconds, or 2.8256 times faster than a comparable Box #3 operator.
Measured Speed of Multi-Threaded Operators
- Using 5 partitions of 10MP each = 50MP
- No KCM Reference Time: 53.297 sec.
- Load Position Vector Channel and Output As Color: 57.391 sec. = 4.094 sec/50MP = 0.08188 sec/MP = 12.213 MP/sec.
- Add Position and Color Channels and Output As Color: 58.047 sec. = 4.75 sec/50MP = 0.095 sec/MP = 10.5263 MP/sec.
- Multiply Position and Color Channels and Output As Color: 57.036 sec. = 3.739/50MP = 0.07478 sec/MP = 13.3726 MP/sec.
- Blending Position and Color Channels by Float Input and Output As Color: 57.735 sec. = 4.438/50MP = 0.08876 sec/MP = 11.2663 MP/sec.
- Blending Position and Color Channels by Vector Input and Output As Color: 57.844 sec. = 4.547/50MP = 0.09094 sec/MP = 10.9963 MP/sec.
- Same as above but also Clamping Output By 2 Vectors: 57.953 sec. = 4.656/50MP = 0.09312 sec/MP = 10.7388 MP/sec.