perf(core): tile-drain instrumentation; parallel FI sign-edge repair, FI first tile 1.28 -> 0.85 s (L55); R24
Opt-in --instrument-tile-drain records per-tile queue/dispatch/finish timelines, stage spans and counters (proof skips, X8 lanes, GradAt/midpoint memo, skirts, FI cache stats); <2% when off. Measured: SW 13.3 and FI 50.2 worker-s across LOD0-8, tails are work-saturated. FI sign-edge repair now computes in parallel and publishes in sorted serial order (exact output): sign-edge 535 -> 47 ms, FI first tile 1.28 -> 0.85 s, near ring 1.46 -> 1.04 s, whole view 6.09 -> 5.65 s. Proof block size, lane batching, SW midpoint memo and helper cap 12 measured and left off. fast/medium/full PASS, Clang and GCC. Research R24: slab + motif generator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
1 parent
e35a77f676
commit
aee1487410
13 files changed
+882
-74
No files matched your search
@@ -14,13 +14,16 @@
|
||||
class FStandaloneCoreScheduler final : public VoxelForgeCore::JobScheduler
|
||||
{
|
||||
public:
|
||||
explicit FStandaloneCoreScheduler(std::size_t helperLimit=12)
|
||||
:HelperLimit(std::clamp<std::size_t>(helperLimit,1,12)){}
|
||||
|
||||
double parallel_for(std::size_t count,std::size_t batchSize,std::size_t workerLimit,
|
||||
void* context,Task task,double* workerActiveSeconds,
|
||||
std::size_t workerActiveCapacity) const override
|
||||
{
|
||||
if(count==0)return 0.0;
|
||||
const std::size_t workers=std::clamp<std::size_t>(workerLimit,1,
|
||||
std::min<std::size_t>(8,std::max<std::size_t>(1,count)));
|
||||
std::min<std::size_t>(HelperLimit,std::max<std::size_t>(1,count)));
|
||||
const std::size_t grain=std::max<std::size_t>(1,batchSize);
|
||||
std::atomic<std::size_t> next{0};
|
||||
std::vector<double> active(workers,0.0);
|
||||
@@ -50,4 +53,7 @@ public:
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
private:
|
||||
std::size_t HelperLimit=8;
|
||||
};
|
||||
Reference in new issue
Block a user