dotnet / dotnet/machinelearning

Perf: Optimization for GAMs (VTune)

Open
#3,004 0 comments 0 reactions 0 assignees View on GitHub
area-Trees enhancement Priority:3 tenet-performance
Dominant language
C#
Stars
9.4k
Forks
2k
Avg merge
2d 20h
Merged PRs (30d)
11

Description

Benchmarking using VTune has found several bottlenecks in GAMS

- Significant CPU cycles spent in Interlocked.CompareExchange.
- Call-stack & source code of CenterGraph shows Interlocked.CompareExchange in the inner loop, contributing to the high CPU cycles in CompareExchange. Look at reducing the calls to this intrinsic.
- Next step: Look at re-jiggering the code in CenterGraph to avoid the CompareExchange in the inner loop

Top HotSpots:

Function | Module | CPU Time
-- | -- | --
COMInterlocked::CompareExchangeDouble | coreclr.dll | 55.754s
<>c__DisplayClass46_0::b__0 | Microsoft.ML.FastTree.dll | 35.381s
Microsoft::ML::Internal::Utilities::DoubleParser::TryParseCore | Microsoft.ML.Core.dll | 30.808s
<>c__DisplayClass49_0::b__0 | Microsoft.ML.FastTree.dll | 26.872s

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.