Page History
...
Currently, it evaluates the average time (over 1e6 iterations) to complete the number of products indicated as well as the sum of the resulting vector. The length of the vector varies according to the number of samples.
The code currently uses a simple decision tree which For a fixed number of samples, the code uses if statements to directly indicates how many filters to use. For the code using the binary decision tree, the number of filters is passed as a prepocessor argument. Once we know how many filters are necessary this will become a fixed value. Meanwhile a new decision tree will determine the case to use depending on which windows have a hit, currently in progress.
These benchmarks were obtained os psanagpu116, using O3 and vectored optimization. As a reference, 10 kHz operation gives a time window of 100 µs.
Code Block | ||||
---|---|---|---|---|
| ||||
g++ -std=c++11 -O3 -DNDEBUG -march=native -IEigen main.cpp |
...
Number of products Number of samples | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
100 | 0.061 | 0.074 | 0.091 | 0.108 | |
200 | 0.113 | 0.145 | 0.176 | 0.210 | |
300 | 0.150 | 0.190 | 0.241 | 0.296 | |
400 | 0.200 | 0.266 | 0.329 | 0.397 | |
500 | 0.239 | 0.321 | 0.402 | 0.486 | |
600 | 0.279 | 0.378 | 0.476 | 0.576 | |
700 | 0.318 | 0.435 | 0.549 | 0.667 | |
Decision tree | 0.092 | 0.117 | 0.138 | 0.161 | 0.203 |
References
Ullom and Bennet. Review of superconducting transition sensors for X-ray and gamma-ray spectroscopy
...