From 3f020d7667f456d15fa96ed17521d69fc7ce2f60 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Fri, 10 Feb 2023 18:50:15 -0800 Subject: [PATCH 1/6] JIT: scalable profile counter mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an config option to use a "scalable" profile helper for edge counters, where we try and avoid contention by probablistic updates once the counter value exceeds some threshold (currently 8192). Using the current xorshift RNG this gives the counter a two-sigma accuracy of around +/- 2%. The idea is loosely based on "Scalable Statistics Counters" by Dice, Lev, and Moir (SPAA’13). Also allow the scalable and interlocked profile modes to operate at the same time, recording two sets of counts per probe, so we can verify that this new mode is sufficiently accurate. --- .../features/ScalableApproximateCounting.md | 185 ++++++++++++++++++ .../features/counter-accuracy-detail.png | Bin 0 -> 38741 bytes .../features/counter-accuracy-tunable.png | Bin 0 -> 40920 bytes docs/design/features/counter-accuracy.png | Bin 0 -> 50085 bytes .../features/counter-scaling-detail.png | Bin 0 -> 31569 bytes docs/design/features/counter-scaling.png | Bin 0 -> 20470 bytes src/coreclr/inc/corinfo.h | 2 + src/coreclr/inc/jiteeversionguid.h | 10 +- src/coreclr/inc/jithelpers.h | 2 + src/coreclr/jit/fgprofile.cpp | 108 ++++++++-- src/coreclr/jit/jitconfigvalues.h | 1 + src/coreclr/vm/jithelpers.cpp | 59 ++++++ 12 files changed, 341 insertions(+), 26 deletions(-) create mode 100644 docs/design/features/ScalableApproximateCounting.md create mode 100644 docs/design/features/counter-accuracy-detail.png create mode 100644 docs/design/features/counter-accuracy-tunable.png create mode 100644 docs/design/features/counter-accuracy.png create mode 100644 docs/design/features/counter-scaling-detail.png create mode 100644 docs/design/features/counter-scaling.png diff --git a/docs/design/features/ScalableApproximateCounting.md b/docs/design/features/ScalableApproximateCounting.md new file mode 100644 index 00000000000000..c2ee06d712ba06 --- /dev/null +++ b/docs/design/features/ScalableApproximateCounting.md @@ -0,0 +1,185 @@ +# Scalable Approximate Counting + +With particular relevance to Dynamic PGO + +Andy Ayers +February 2023 + +## Introduction + +Dynamic PGO works by instrumenting early versions of methods (aka Tier0 codegen) to produce a profile data set that the JIT can use to optimize subsequent versions of those methods (aka Tier1 codegen). + +In this note we focus on just one aspect of this instrumentation: *counter based* instrumentation. With PGO enabled, the JIT adds code to each Tier0 method to count how often the parts of the methods execute so that later on in Tier1 it can focus optimization efforts on the parts of the method that seem to be most important for performance. More details on Dynamic PGO can be found [here](https://github.com/dotnet/runtime/blob/main/docs/design/features/DynamicPgo.md). + +From the outset, Dynamic PGO has used fairly simplistic methods of counting—for each distinct counter, the code the JIT adds will simply increment a shared memory location. Let's call that aspect of counting the counter *implementation* and this particular way of counting *racing*. + +(A related aspect of counting, not covered here, is that the JIT tries to be efficient with counter *placement*, relying on an approach first pioneered by [Ball](https://dl.acm.org/doi/10.1145/143165.143180) to try and reduce the total number of counters needed to a minimum, and to place them in the less often executed parts of the method.) + +Recently we made two surprising observations about the *racing* implementation: +* We started measuring the runtime cost of counting in heavily multithreaded applications by forcing them to run only the Tier0 instrumented code. We saw that compared to uninstrumented Tier0 code, instrumented code was slower by a factor of 2 or 3. Some further experimentation revealed that cache contention (both true and false sharing) was a major contributor to the high instrumentation overhead. +* We started looking at how accurate the counts were in the Tier1 compilation and discovered widespread inaccuracies. The major contributor here was lost counter updates because of the unsynchronized access across many threads of execution (hence the name *racing*). + +This was doubly bad news: not only were we paying a lot at runtime for our *racing* counter implementation, but it was also doing a pretty bad job of counting. + +It seemed like we should be able to do better, and indeed we can. The rest of this note explores this problem space in more detail. + +## Precision + +The obvious fix for the lost counter updates is to stop racing and start synchronizing the updates. Our various platforms provide nice atomic counter updates in the form of `InterlockedIncrement` and similar, and the JIT can emit the proper machine code forms (say `lock inc[mem]`) that lay at the heart of these in place of the unsynchronized (`inc [mem]`) *racing* variant. + +So let's call this new version the *interlocked* implementation scheme for a counter. It is simple to update the JIT to emit this variant and make various measurements. *Interlocked* largely fixes the accuracy problem we'd been seeing with *racing* counters, but creates even more runtime overhead. So while *interlocked* might serve as a component of a solution, it was not on its own a solution. + +## Scalability + +The counts gathered by Dynamic PGO have very wide dynamic range, and even when we are checking accuracy we are usually interested in relatively self consistent counts. For example, if we have a simple `if / then /else ` construct we would expect the count for the `if` block to equal sum of the counts for the `then` and `else` portions, and given a flow graph one can formulate this sort of conservation law more broadly (a good analogy here are Kirchhoff's laws for current flowing through a circuit). But there are some variances that we must tolerate: the method could throw an exception or the thread could be asynchronously stopped. So we typically are happy if the profile flows are accurate at each conservation point to say 1%, and a diminishing return on having results more accurate than this. + +Given that we already need to tolerate some inaccuracy, the idea came about to see if we could leverage that to produce an intentionally approximate counting scheme that was nearly as accurate as *interlocked* but with less overhead. + +A bit of research turned up an interesting paper by Dice, Lev, and Moir: [Scalable Statistics Counters](https://dl.acm.org/doi/10.1145/2486159.2486182) which was concerned with a similar problem. Here the key insight is that we can leverage randomization to count probabilistically: once the counter value is sufficiently large, instead of always trying to update its value by 1 for each increment, we update it by $N$ with probability $1/N$. So as the counter value grows we update it less and less often, thus reducing the amount of contention counter updates cause, and the counter's expected value is the correct count, with some controllable likelihood of the count being too large or to small. Because the total number of updates is limited, we can use *interlocked* operations for the updates without unduly harming scalability. + +The approach in the paper relies either on using standard floating-point representations for counts or a "software float" representation where part of the counter storage is an exponent and the remainder a mantissa. Those representations were not well suited for our work, so we set about to find a similar scheme that would work for regular integer data types. + +The key benefit of the exponent/mantissa form is that it makes it relatively simple to estimate the magnitude of the counter—the exponent is the integer part of the $\log_2$ of the counter value, and in particular, to compute an approximately correct quantity $1/N$ quickly without needing to divide if we restrict $N$ to a power of 2. For normal integer data we can compute the same thing by simply finding the highest set bit of the data, and can check the probability by computing the remainder left by dividing some random value by simple masks and compares. + +## The Scalable Counter + +Here is a C# implementation of our counter: +```C# + static void ScalableProfileCount(ref uint counter) + { + uint count = counter; + uint delta = 1; + + if (count > 0) + { + int logCount = 31 - (int) uint.LeadingZeroCount(count); + + if (logCount >= 13) + { + delta = 1u << (logCount - 12); + uint rand = random(); + bool update = (rand & (delta - 1)) == 0; + if (!update) + { + return; + } + } + } + + Interlocked.Add(ref counter, delta); + } +``` +Here `random` is a fast source of `uint` sized random numbers, ideally obtainable without synchronization (so say from a `thread_local` producer). + +When the count value is small (less than $2^{13} = 8192$) the counter counts exactly by $1$. Once the value exceeds $8192$ the counter counts randomly, first by $2$, then $4$, then $8$, ... The only parameter value here is $13$, which controls the relative accuracy: a higher number would give more accurate (but less scalable) counts; a smaller number more scalable (but less accurate) counts. + +Let's call this implementation *scalable*. + +A value of $13$ with the simple and fast `xorshift` RNG we've historically used for PGO empirically gives the *scalable* count an overall $2\sigma$ accuracy of around 2%, with worst case deviation around 3% (see below on how we measured this). A better quality RNG might improve accuracy but would create more overhead. + +## Results From Simulation + +We first worked up a C# simulation to compare the three approaches introduced above: *racing*, *interlocked*, and *scalable*. We've already mentioned some of these results in text above. + +### Accuracy + +As noted, *interlocked* is perfectly accurate. If we compare *racing* and *scalable* to interlocked we see results similar to the following: + +![Counter Accuracy](counter-accuracy.png) + +Here the X axis is the intended final value of the count, where counting is done by #processors (here 12) threads each doing nothing more than incrementing the counter, and the Y axis shows the mean counter value along with max and min values, scaled by the total expected count. + +As expected, *Interlocked* is just a horizontal line at Y=1.0. + +*Racing* is losing counts even with a small final count of 12, and the loss percentage gets worse and worse the higher we try to count, ending up with at best 20% of the final count value. + +*Scalable* is perfectly accurate up to 8192, then starts to deviate somewhat, but the total relative deviation remains constrained. + +If we remove *Racing* from the picture and zoom in, we see that the error is indeed 2% for the 5/95 spread, and 3% for worst case, and that on average the count is very accurate. + +![Counter Accuracy Detail](counter-accuracy-detail.png) + +We can also adjust the accuracy by changing when we switch to probabilistic counting; the higher the switchover point, the more accurate the results are overall. In the below we vary the switchover point from $2^{10}$ to $2^{15}$ and plot the 5th and 95th percentiles relative to the accurate count: + +![Alt text](counter-accuracy-tunable.png) + +### Scalability + +Benchmarking the same set of computations with, we end up with the following (here the switchover is at 8192): + +![Counter Scaling](counter-scaling.png) + +So *scalable* and *racing* have similar costs, while *interlocked* becomes quite a bit more costly at high counts. + +### Notes + +* Quite likely the benchmark has too much fixed overhead and could be improved, and if so we might see distinctions even for lower total counts. +* It was critical for *scalable* to use per-thread RNGs and to seed them each differently. + +Mathematically we can model the *scalable* update distribution as a binomial distribution. If we make $N$ counter updates with probability $P$, the expected number of updates is $NP$ and the standard deviation in the number of updates is $\sqrt{NP(1-P)}$. + +So if we start probabilistically incrementing by $2$ with probability $1/2$ at $8192$, then after $8192$ probabilistic updates we have added an expected value of $8192 \cdot 2 \cdot 1/2 = 8192$ to the counter. + +The variance in the actual number of updates is $\sqrt{2^{13} \cdot 1/2 \cdot (1-1/2)} = \sqrt{2^{11}} \approx 45$. Each update is by 2, so the two standard deviation expected range for the change in the counter value is $2 \cdot 2 \cdot 45 \approx 180$. The relative error range is thus $\pm 180 / 8192 \approx \pm 0.022$. This is in reasonable agreement with the empirical study above. + +As we count higher the standard deviation is limited by $\sigma \approx \sqrt{NP}$, so when we double $N$ and halve $P$ the variance $\sigma$ remains roughly the same overall. + +If (via the benchmark) we look at how tunable the scalability is, we see that the higher the threshold for switching to probabilistic counting, the higher the cost (but of course the better the accuracy): + +![Details on scaling vs threshold](counter-scaling-detail.png) + +## Results From Dynamic PGO + +We next implemented this same technique within the runtime and JIT, encoding the logic above as a new helper call. + +Trying this out on some Tech Empower benchmarks where we force the benchmark to execute Tier0 instrumented code, we see significant improvements in server metrics (here on mvc/plaintext, windows, citrine, switchover at 8192): + +| Metric (Tier0 instr) | Racing | Scalable | | +| ---------------------- | ---------------- | -------------------- | ------- | +| First Request (ms) | 155 | 155 | +0.22% | +| Requests/sec | 223,665 | 352,592 | +57.64% | +| Requests | 3,372,373 | 5,308,812 | +57.42% | +| Mean latency (ms) | 10.60 | 7.83 | -26.08% | +| Max latency (ms) | 237.25 | 279.12 | +17.65% | +| Read throughput (MB/s) | 34.77 | 54.81 | +57.64% | +| Latency 50th (ms) | 10.03 | 6.68 | -33.42% | +| Latency 75th (ms) | 14.69 | 9.70 | -33.98% | +| Latency 90th (ms) | 17.65 | 11.76 | -33.38% | +| Latency 99th (ms) | 29.59 | 0.00 | | + +And in normal processing, the extra accuracy from *Scalable* seems to provide some small benefits to the Tier1 code as well: + +| Metric (Tiered PGO) | Racing | Scalable | | +| ---------------------- | ----------- | --------------- | ------- | +| First Request (ms) | 90 | 89 | -1.12% | +| Requests/sec | 3,083,453 | 3,187,157 | +3.36% | +| Requests | 46,558,728 | 48,125,121 | +3.36% | +| Mean latency (ms) | 0.97 | 0.92 | -4.61% | +| Max latency (ms) | 98.20 | 109.77 | +11.77% | +| Read throughput (MB/s) | 479.32 | 495.44 | +3.36% | +| Latency 50th (ms) | 0.76 | 0.74 | -2.76% | +| Latency 75th (ms) | 1.08 | 1.05 | -2.77% | +| Latency 90th (ms) | 1.30 | 1.28 | -2.05% | +| Latency 99th (ms) | 0.00 | 0.00 | | + +We haven't yet explored the impact across a wider set of benchmarks or tried varying the switch-over point. + +## Summary + +We have presented a technique to implement approximately correct counters with relatively low overhead and good scaling properties. The counter accuracy can be tuned by trading off some of the scalability benefit. The counting process uses minimal runtime state: one RNG per physical thread, plus one storage location per counter. The value of the counter is readily available without any post-processing. + +This sort of counter seems well-suited for use in our Dynamic PGO instrumentation. + +It may be that approximate counting will be useful in other application areas where scala + +## End Notes + +The Dice *et al.* paper suggests that at high count values one might retain more accuracy by capping the granularity of updates. That is, once the likelihood of an update reaches say $1/1024$ there is not much scalability benefit to be had with further decreases, as the contention for the counter should be minimal. We have not tried this. + +It might also be possible to continue with increment by one counting so long as there is no contention for the counter, so that a single-threaded application gets more precision. One could for example replace the `Interlocked.Add` with a compare exchange, and only switch over to probabilistic counting when the exchange fails. + +Another approach not considered here is to shard the entire counter array into per-thread counters. Aside from a potentially large size increase, a sharded counter requires more work to query the counter's current value, as one must sum across the shards. + +Our *scalable* scheme still suffers from false sharing; this seems more difficult to fix. + +The paper by Dice *et al.* refers to a seminal paper by Morris, [Counting large numbers of events in small registers](https://dl.acm.org/doi/10.1145/359619.359627) where similar techniques are used to reduce the size of each counter. This might prove interesting in other contexts, for example compressing the size of some of our other DynamicPGO data, like the dynamic class profile histograms. \ No newline at end of file diff --git a/docs/design/features/counter-accuracy-detail.png b/docs/design/features/counter-accuracy-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..7783454c38a89f5d3100fd722e81db54411a7d06 GIT binary patch literal 38741 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%0AGA9DB8o>FRASU?~cAp(vSq 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 I9<+@A06uur+yDRo literal 0 HcmV?d00001 diff --git a/docs/design/features/counter-accuracy.png b/docs/design/features/counter-accuracy.png new file mode 100644 index 0000000000000000000000000000000000000000..4036e4c184333e29b32169dddc977ddaaa5de28b GIT binary patch literal 50085 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 F^hG`{iWt5w)eQY1sDo-Yt_~ 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/design/features/counter-scaling-detail.png b/docs/design/features/counter-scaling-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..3215e23b3b5f0ce34cc30ba5e462a2a198d5474b GIT binary patch literal 31569 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 literal 0 HcmV?d00001 diff --git a/docs/design/features/counter-scaling.png b/docs/design/features/counter-scaling.png new file mode 100644 index 0000000000000000000000000000000000000000..0f122187dab42c095b9910890b078d6ee5d8b1ff GIT binary patch literal 20470 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 azyI?y^2XhsX{L7!B;@Jp=d#Wzp$P!0I`xwP literal 0 HcmV?d00001 diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index 45a9846d726237..59c65cd59fa1d4 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -653,6 +653,8 @@ enum CorInfoHelpFunc CORINFO_HELP_DELEGATEPROFILE64, // Update 64-bit method profile for a delegate call site CORINFO_HELP_VTABLEPROFILE32, // Update 32-bit method profile for a vtable call site CORINFO_HELP_VTABLEPROFILE64, // Update 64-bit method profile for a vtable call site + CORINFO_HELP_COUNTPROFILE32, // Update 32-bit block or edge count profile + CORINFO_HELP_COUNTPROFILE64, // Update 64-bit block or edge count profile CORINFO_HELP_VALIDATE_INDIRECT_CALL, // CFG: Validate function pointer CORINFO_HELP_DISPATCH_INDIRECT_CALL, // CFG: Validate and dispatch to pointer diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index b5fcba2c64125e..b90de122eb4510 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* C1A00D6C-2B60-4511-8AD2-6DB109224E37 */ - 0xc1a00d6c, - 0x2b60, - 0x4511, - { 0x8a, 0xd2, 0x6d, 0xb1, 0x9, 0x22, 0x4e, 0x37 } +constexpr GUID JITEEVersionIdentifier = { /* 3054e9ba-bcfe-417c-9043-92ccc8738b80 */ + 0x3054e9ba, + 0xbcfe, + 0x417c, + {0x90, 0x43, 0x92, 0xcc, 0xc8, 0x73, 0x8b, 0x80} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/inc/jithelpers.h b/src/coreclr/inc/jithelpers.h index e047cbff304a09..d5d3d5af8d94f9 100644 --- a/src/coreclr/inc/jithelpers.h +++ b/src/coreclr/inc/jithelpers.h @@ -341,6 +341,8 @@ JITHELPER(CORINFO_HELP_DELEGATEPROFILE64, JIT_DelegateProfile64, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_VTABLEPROFILE32, JIT_VTableProfile32, CORINFO_HELP_SIG_4_STACK) JITHELPER(CORINFO_HELP_VTABLEPROFILE64, JIT_VTableProfile64, CORINFO_HELP_SIG_4_STACK) + JITHELPER(CORINFO_HELP_COUNTPROFILE32, JIT_CountProfile32, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_COUNTPROFILE64, JIT_CountProfile64, CORINFO_HELP_SIG_REG_ONLY) #if defined(TARGET_AMD64) || defined(TARGET_ARM64) JITHELPER(CORINFO_HELP_VALIDATE_INDIRECT_CALL, JIT_ValidateIndirectCall, CORINFO_HELP_SIG_REG_ONLY) diff --git a/src/coreclr/jit/fgprofile.cpp b/src/coreclr/jit/fgprofile.cpp index 60740317e71bbc..6ae35a39189b56 100644 --- a/src/coreclr/jit/fgprofile.cpp +++ b/src/coreclr/jit/fgprofile.cpp @@ -558,6 +558,16 @@ void BlockCountInstrumentor::RelocateProbes() // void BlockCountInstrumentor::BuildSchemaElements(BasicBlock* block, Schema& schema) { + unsigned numCountersPerProbe = 1; + + // When we have both interlocked and scalable profile modes enabled, we will + // count both ways, so allocate two count slots per probe. + // + if ((JitConfig.JitScalableProfiling() > 0) && (JitConfig.JitInterlockedProfiling() > 0)) + { + numCountersPerProbe = 2; + } + // Remember the schema index for this block. // assert(block->bbCountSchemaIndex == -1); @@ -570,7 +580,7 @@ void BlockCountInstrumentor::BuildSchemaElements(BasicBlock* block, Schema& sche assert((int)offset >= 0); ICorJitInfo::PgoInstrumentationSchema schemaElem; - schemaElem.Count = 1; + schemaElem.Count = numCountersPerProbe; schemaElem.Other = 0; schemaElem.InstrumentationKind = m_comp->opts.compCollect64BitCounts ? ICorJitInfo::PgoInstrumentationKind::BasicBlockLongCount @@ -761,32 +771,67 @@ void BlockCountInstrumentor::InstrumentMethodEntry(Schema& schema, uint8_t* prof // GenTree* BlockCountInstrumentor::CreateCounterIncrement(Compiler* comp, uint8_t* counterAddr, var_types countType) { - if (JitConfig.JitInterlockedProfiling() > 0) + const bool interlocked = JitConfig.JitInterlockedProfiling() > 0; + const bool scalable = JitConfig.JitScalableProfiling() > 0; + + if (interlocked || scalable) { - // Form counter address - GenTree* addressNode = comp->gtNewIconHandleNode(reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR); + GenTree* result = nullptr; - // Interlocked increment - GenTree* xAddNode = comp->gtNewOperNode(GT_XADD, countType, addressNode, comp->gtNewIconNode(1, countType)); + if (interlocked) + { + // Form counter address + GenTree* addressNode = comp->gtNewIconHandleNode(reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR); - return xAddNode; - } - else - { - // Read Basic-Block count value - GenTree* valueNode = - comp->gtNewIndOfIconHandleNode(countType, reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR, false); + // Interlocked increment + result = comp->gtNewOperNode(GT_XADD, countType, addressNode, comp->gtNewIconNode(1, countType)); + } + + if (scalable) + { + if (interlocked) + { + assert(result != nullptr); + counterAddr += (countType == TYP_INT) ? 4 : 8; + } - // Increment value by 1 - GenTree* rhsNode = comp->gtNewOperNode(GT_ADD, countType, valueNode, comp->gtNewIconNode(1, countType)); + // Form counter address + GenTree* addressNode = comp->gtNewIconHandleNode(reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR); - // Write new Basic-Block count value - GenTree* lhsNode = - comp->gtNewIndOfIconHandleNode(countType, reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR, false); - GenTree* asgNode = comp->gtNewAssignNode(lhsNode, rhsNode); + // Scalable increment + GenTree* scalableNode = comp->gtNewHelperCallNode((countType == TYP_INT) ? CORINFO_HELP_COUNTPROFILE32 + : CORINFO_HELP_COUNTPROFILE64, + countType, addressNode); - return asgNode; + if (interlocked) + { + result = comp->gtNewOperNode(GT_COMMA, countType, result, scalableNode); + } + else + { + result = scalableNode; + } + } + + return result; } + + // Else do an unsynchronized update + // + + // Read Basic-Block count value + GenTree* valueNode = + comp->gtNewIndOfIconHandleNode(countType, reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR, false); + + // Increment value by 1 + GenTree* rhsNode = comp->gtNewOperNode(GT_ADD, countType, valueNode, comp->gtNewIconNode(1, countType)); + + // Write new Basic-Block count value + GenTree* lhsNode = + comp->gtNewIndOfIconHandleNode(countType, reinterpret_cast(counterAddr), GTF_ICON_BBC_PTR, false); + GenTree* asgNode = comp->gtNewAssignNode(lhsNode, rhsNode); + + return asgNode; } //------------------------------------------------------------------------ @@ -1685,6 +1730,16 @@ void EfficientEdgeCountInstrumentor::RelocateProbes() // void EfficientEdgeCountInstrumentor::BuildSchemaElements(BasicBlock* block, Schema& schema) { + unsigned numCountersPerProbe = 1; + + // When we have both interlocked and scalable profile modes enabled, we will + // count both ways, so allocate two count slots per probe. + // + if ((JitConfig.JitScalableProfiling() > 0) && (JitConfig.JitInterlockedProfiling() > 0)) + { + numCountersPerProbe = 2; + } + // Walk the bbSparseProbeList, emitting one schema element per... // for (Probe* probe = (Probe*)block->bbSparseProbeList; probe != nullptr; probe = probe->next) @@ -1711,7 +1766,7 @@ void EfficientEdgeCountInstrumentor::BuildSchemaElements(BasicBlock* block, Sche int32_t targetKey = EfficientEdgeCountBlockToKey(target); ICorJitInfo::PgoInstrumentationSchema schemaElem; - schemaElem.Count = 1; + schemaElem.Count = numCountersPerProbe; schemaElem.Other = targetKey; schemaElem.InstrumentationKind = m_comp->opts.compCollect64BitCounts ? ICorJitInfo::PgoInstrumentationKind::EdgeLongCount @@ -1736,6 +1791,17 @@ void EfficientEdgeCountInstrumentor::BuildSchemaElements(BasicBlock* block, Sche // void EfficientEdgeCountInstrumentor::Instrument(BasicBlock* block, Schema& schema, uint8_t* profileMemory) { + // What type of probe(s) will we emit? + // + const bool interlocked = JitConfig.JitInterlockedProfiling() > 0; + const bool scalable = JitConfig.JitScalableProfiling() > 0; + const bool unsynchronized = !interlocked && !scalable; + const bool dual = interlocked && scalable; + + JITDUMP("Using %s probes\n", + unsynchronized ? "unsychronized" + : (dual ? "both interlocked and scalable" : (interlocked ? "interlocked" : "scalable"))); + // Walk the bbSparseProbeList, adding instrumentation. // for (Probe* probe = (Probe*)block->bbSparseProbeList; probe != nullptr; probe = probe->next) diff --git a/src/coreclr/jit/jitconfigvalues.h b/src/coreclr/jit/jitconfigvalues.h index 449a02bcd0a222..0737f065859b11 100644 --- a/src/coreclr/jit/jitconfigvalues.h +++ b/src/coreclr/jit/jitconfigvalues.h @@ -569,6 +569,7 @@ CONFIG_STRING(JitEnablePatchpointRange, W("JitEnablePatchpointRange")) // Profile instrumentation options CONFIG_INTEGER(JitInterlockedProfiling, W("JitInterlockedProfiling"), 0) +CONFIG_INTEGER(JitScalableProfiling, W("JitScalableProfiling"), 1) CONFIG_INTEGER(JitMinimalJitProfiling, W("JitMinimalJitProfiling"), 1) CONFIG_INTEGER(JitMinimalPrejitProfiling, W("JitMinimalPrejitProfiling"), 0) diff --git a/src/coreclr/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp index e63bde83305bb3..07ec579c29cd65 100644 --- a/src/coreclr/vm/jithelpers.cpp +++ b/src/coreclr/vm/jithelpers.cpp @@ -5736,6 +5736,65 @@ HCIMPL3(void, JIT_VTableProfile64, Object* obj, CORINFO_METHOD_HANDLE baseMethod } HCIMPLEND +HCIMPL1(void, JIT_CountProfile32, volatile LONG* pCounter) +{ + FCALL_CONTRACT; + FC_GC_POLL_NOT_NEEDED(); + + LONG count = *pCounter; + LONG delta = 1; + + if (count > 0) + { + unsigned long logCount = 0; + BitScanReverse(&logCount, count); + + if (logCount >= 13) + { + delta = 1 << (logCount - 12); + const unsigned rand = HandleHistogramProfileRand(); + const bool update = (rand & (delta - 1)) == 0; + if (!update) + { + return; + } + + } + } + + InterlockedAdd(pCounter, delta); +} +HCIMPLEND + +HCIMPL1(void, JIT_CountProfile64, volatile LONG64* pCounter) +{ + FCALL_CONTRACT; + FC_GC_POLL_NOT_NEEDED(); + + LONG64 count = *pCounter; + LONG64 delta = 1; + + if (count > 0) + { + unsigned long logCount = 0; + BitScanReverse64(&logCount, count); + + if (logCount >= 13) + { + delta = 1LL << (logCount - 12); + const unsigned rand = HandleHistogramProfileRand(); + const bool update = (rand & (delta - 1)) == 0; + if (!update) + { + return; + } + } + } + + InterlockedAdd64(pCounter, delta); +} +HCIMPLEND + //======================================================================== // // INTEROP HELPERS From 04482c8e013a41ba5dc78853086502f5e0d5ed98 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Thu, 6 Apr 2023 12:13:33 -0700 Subject: [PATCH 2/6] fix build --- src/coreclr/vm/jithelpers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp index 07ec579c29cd65..4a0f1559480a86 100644 --- a/src/coreclr/vm/jithelpers.cpp +++ b/src/coreclr/vm/jithelpers.cpp @@ -5746,7 +5746,7 @@ HCIMPL1(void, JIT_CountProfile32, volatile LONG* pCounter) if (count > 0) { - unsigned long logCount = 0; + unsigned int logCount = 0; BitScanReverse(&logCount, count); if (logCount >= 13) @@ -5776,7 +5776,7 @@ HCIMPL1(void, JIT_CountProfile64, volatile LONG64* pCounter) if (count > 0) { - unsigned long logCount = 0; + unsigned int logCount = 0; BitScanReverse64(&logCount, count); if (logCount >= 13) From ddc9178b7460cfc45c2fba47fe60c9ad5b856796 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Thu, 6 Apr 2023 11:32:27 -0700 Subject: [PATCH 3/6] remove trailing whitespace --- docs/design/features/ScalableApproximateCounting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/features/ScalableApproximateCounting.md b/docs/design/features/ScalableApproximateCounting.md index c2ee06d712ba06..5948581df591ba 100644 --- a/docs/design/features/ScalableApproximateCounting.md +++ b/docs/design/features/ScalableApproximateCounting.md @@ -11,7 +11,7 @@ Dynamic PGO works by instrumenting early versions of methods (aka Tier0 codegen) In this note we focus on just one aspect of this instrumentation: *counter based* instrumentation. With PGO enabled, the JIT adds code to each Tier0 method to count how often the parts of the methods execute so that later on in Tier1 it can focus optimization efforts on the parts of the method that seem to be most important for performance. More details on Dynamic PGO can be found [here](https://github.com/dotnet/runtime/blob/main/docs/design/features/DynamicPgo.md). -From the outset, Dynamic PGO has used fairly simplistic methods of counting—for each distinct counter, the code the JIT adds will simply increment a shared memory location. Let's call that aspect of counting the counter *implementation* and this particular way of counting *racing*. +From the outset, Dynamic PGO has used fairly simplistic methods of counting—for each distinct counter, the code the JIT adds will simply increment a shared memory location. Let's call that aspect of counting the counter *implementation* and this particular way of counting *racing*. (A related aspect of counting, not covered here, is that the JIT tries to be efficient with counter *placement*, relying on an approach first pioneered by [Ball](https://dl.acm.org/doi/10.1145/143165.143180) to try and reduce the total number of counters needed to a minimum, and to place them in the less often executed parts of the method.) From 150becd77835f48c7b7a7afeec0b78b4c4bf9aee Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Thu, 6 Apr 2023 12:36:07 -0700 Subject: [PATCH 4/6] make both linux and windows happy --- src/coreclr/vm/jithelpers.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp index 4a0f1559480a86..56a008de102394 100644 --- a/src/coreclr/vm/jithelpers.cpp +++ b/src/coreclr/vm/jithelpers.cpp @@ -5746,7 +5746,7 @@ HCIMPL1(void, JIT_CountProfile32, volatile LONG* pCounter) if (count > 0) { - unsigned int logCount = 0; + DWORD logCount = 0; BitScanReverse(&logCount, count); if (logCount >= 13) @@ -5776,7 +5776,7 @@ HCIMPL1(void, JIT_CountProfile64, volatile LONG64* pCounter) if (count > 0) { - unsigned int logCount = 0; + DWORD logCount = 0; BitScanReverse64(&logCount, count); if (logCount >= 13) From 8487b0192e1dee0efb6d63a64aacfa851e9bf5de Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Thu, 6 Apr 2023 16:01:39 -0700 Subject: [PATCH 5/6] fix CorInfoHelpFunc for managed jit interface --- src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs index 90fb6f7668d843..01c4dfbc1b1189 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs @@ -295,6 +295,8 @@ which is the right helper to use to allocate an object of a given type. */ CORINFO_HELP_DELEGATEPROFILE64, // Update 64-bit method profile for a delegate call site CORINFO_HELP_VTABLEPROFILE32, // Update 32-bit method profile for a vtable call site CORINFO_HELP_VTABLEPROFILE64, // Update 64-bit method profile for a vtable call site + CORINFO_HELP_COUNTPROFILE32, // Update 32-bit block or edge count profile + CORINFO_HELP_COUNTPROFILE64, // Update 64-bit block or edge count profile CORINFO_HELP_VALIDATE_INDIRECT_CALL, // CFG: Validate function pointer CORINFO_HELP_DISPATCH_INDIRECT_CALL, // CFG: Validate and dispatch to pointer From 3cd2165fc53757ae69180336459474ab707c92b6 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Fri, 7 Apr 2023 16:45:55 -0700 Subject: [PATCH 6/6] review feedback --- .../features/ScalableApproximateCounting.md | 2 +- .../features/counter-accuracy-tunable.png | Bin 40920 -> 69587 bytes src/coreclr/vm/jithelpers.cpp | 7 +++++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/design/features/ScalableApproximateCounting.md b/docs/design/features/ScalableApproximateCounting.md index 5948581df591ba..a5b819e6bb77cd 100644 --- a/docs/design/features/ScalableApproximateCounting.md +++ b/docs/design/features/ScalableApproximateCounting.md @@ -170,7 +170,7 @@ We have presented a technique to implement approximately correct counters with r This sort of counter seems well-suited for use in our Dynamic PGO instrumentation. -It may be that approximate counting will be useful in other application areas where scala +It may be that approximate counting will be useful in other application areas where scalability is a concern and exact counts aren't needed. ## End Notes diff --git a/docs/design/features/counter-accuracy-tunable.png b/docs/design/features/counter-accuracy-tunable.png index c6413518dbd534e2255e0d958459059f66154398..8c88518e4aa11b0d992d1507733afaabeb7db5a4 100644 GIT binary patch literal 69587 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½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%0AKmyuKe+y(Fyct|v=y^bIpW_$u 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 Fe*g}BT1Nl? literal 40920 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%0AGA9DB8o>FRASU?~cAp(vSq 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 I9<+@A06uur+yDRo diff --git a/src/coreclr/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp index 56a008de102394..db26ddfe14bc97 100644 --- a/src/coreclr/vm/jithelpers.cpp +++ b/src/coreclr/vm/jithelpers.cpp @@ -5736,6 +5736,13 @@ HCIMPL3(void, JIT_VTableProfile64, Object* obj, CORINFO_METHOD_HANDLE baseMethod } HCIMPLEND +// Helpers for scalable approximate counters +// +// Here 13 means we count accurately up to 2^13 = 8192 and +// then start counting probabialistically. +// +// See docs/design/features/ScalableApproximateCounting.md +// HCIMPL1(void, JIT_CountProfile32, volatile LONG* pCounter) { FCALL_CONTRACT;