diff --git a/docs/ubenchx-ascend-core-profiles.md b/docs/ubenchx-ascend-core-profiles.md new file mode 100644 index 000000000..f80f0f0c1 --- /dev/null +++ b/docs/ubenchx-ascend-core-profiles.md @@ -0,0 +1,15 @@ +# Core memory-access profiles: B200 and Huawei 950PR + +The `/ubenchx/core-memory-profiles` page combines B200 and Huawei 950PR, showing both by default. Its hardware selector can focus on either device. The B200 SM matrix keeps its `clock64` cycle units, GPC/die grouping, statistics and independent color domain; the 950PR retains SYS_CNT ticks and a shared scale across its four panels. Colors and values across devices are not comparable absolute latency. Both matrices measure differences between matched-address latency profiles, not direct core-to-core communication time. + +The legacy `/ubenchx/sm-l2-distance` page and its Chinese sibling redirect to the combined page; the existing `test=sm-l2-distance` API remains compatible. + +The Ascend portion of the `core-memory-profiles` view preserves the four 128 MiB matrices from the 6–7 October 2026 (Singapore time) Cube/Vector locality rerun: 28 Cube scalar controllers and 56 Vector scalar controllers, each tested with one active core and with concurrent launches. Both core types use identical scalar pointer-chase instructions on the same allocation. Each address is averaged over six passes before computing the mean absolute difference between two cores' address profiles. + +The data file contains every displayed matrix entry without rounding, the actual physical core-ID lists, the original pair statistics and source hashes. The arrays preserve ID gaps. Runtime-ID die groups divide IDs below 54 from those at or above 54; they do not assign physical coordinates. The frontend and API recompute within/between-group means from unique off-diagonal pairs using the same pure function. A shared 0–113.63708496093749 SYS_CNT-tick color domain applies to all four panels. + +The unit is raw `SYS_CNT ticks`, not `clock64` cycles or nanoseconds. These are profile differences, not direct core-to-core latency, cache-controller distance or a recovered floorplan. The 128 MiB pattern is separate from the smaller-footprint profile classes and independent contention experiments; those extra inferences are not added here. Concurrent launches lack a grid-wide start barrier, and their fine structure is less repeatable than the broad grouping. No cache-sharing claim follows solely from these positive distances. + +The complete displayed data is in `ascend-core-profiles.json`. Its `sourceSha256` identifies the original plotted-data JSON; each panel also retains the hashes of its archived analysis inputs. This publication contains the displayed matrices and aggregate statistics, not every original per-load observation. + +Coverage: `/ubenchx/core-memory-profiles` and its `/zh` sibling show B200 and all four Ascend panels. Hover, keyboard arrows and pinning only inspect already-returned cells; they do not change data. A repeated click or Enter unpins the current cell. Clicking outside the panel, Escape, or Clear selection clears it. A click on a different cell changes the pin; pointer exit clears an unpinned hover preview. The hub's new test is available through `/api/v1/views/ubenchx?test=core-memory-profiles`, with `gpu=all` (default), `gpu=B200 SXM` or `gpu=Ascend 950PR_9579`, and as `coreMemoryProfiles` in `test=all`. Explicit device selections leave other unavailable test sections empty. B200 keeps its original transformed SM fields plus `unit`, `metric`, `limitations` and `colorLimits`; Ascend keeps its panel schema. API `unit`, `metric`, `limitations`, `coreIds`, `dieGroups` and `colorLimits` preserve the measurement interpretation. diff --git a/packages/app/cypress/e2e/ubenchx.cy.ts b/packages/app/cypress/e2e/ubenchx.cy.ts index eae5264af..d5dd21703 100644 --- a/packages/app/cypress/e2e/ubenchx.cy.ts +++ b/packages/app/cypress/e2e/ubenchx.cy.ts @@ -26,7 +26,7 @@ describe('ubenchX hub and test routes', () => { cy.get('[data-testid="ubenchx-metric-select"]').should('contain', 'TB/s'); }); - it('switches to sm-l2-distance with the test selector', () => { + it('switches to the combined core profiles with the test selector', () => { cy.visit('/ubenchx/mem-bw', dismissModal); cy.contains('ubenchX').should('be.visible'); cy.get('[data-testid="ubenchx-metric-select"]').should('be.visible'); @@ -36,10 +36,10 @@ describe('ubenchX hub and test routes', () => { .should('include', '/zh/ubenchx/mem-bw'); cy.get('[data-testid="ubenchx-test-select"]').click(); - cy.contains('[role="option"]', 'SM-SM L2 Latency Difference').click(); - cy.url().should('include', '/ubenchx/sm-l2-distance'); + cy.contains('[role="option"]', 'Core memory-access profiles').click(); + cy.url().should('include', '/ubenchx/core-memory-profiles'); cy.get('[data-testid="sm-l2-heatmap"]').should('be.visible'); - cy.get('[data-testid="ubenchx-test-select"]').should('contain', 'SM-SM L2 Latency Difference'); + cy.get('[data-testid="ubenchx-test-select"]').should('contain', 'Core memory-access profiles'); }); it('switches to the TPC Skyline table with the test selector', () => { @@ -90,7 +90,7 @@ describe('ubenchX hub and test routes', () => { cy.get('meta[name="robots"]').should('have.attr', 'content').and('contain', 'noindex'); cy.get('link[rel="alternate"][hreflang="zh-CN"]') .invoke('attr', 'href') - .should('include', '/zh/ubenchx/sm-l2-distance'); + .should('include', '/zh/ubenchx/core-memory-profiles'); cy.get('[data-testid="sm-l2-heatmap"] svg rect').last().as('overlay'); cy.get('@overlay').click(520, 120, { force: true }); @@ -132,6 +132,105 @@ const dismiss = { }, }; +describe('Ascend core memory-access profiles', () => { + it('navigates to all four profiles and inspects actual core IDs by keyboard', () => { + cy.visit('/ubenchx/mem-bw', dismiss); + cy.get('[data-testid="ubenchx-test-select"]').click(); + cy.contains('[role="option"]', 'Core memory-access profiles').click(); + cy.url().should('include', '/ubenchx/core-memory-profiles'); + cy.contains('SYS_CNT ticks are not clock64 cycles').should('be.visible'); + cy.get('[data-testid="profile-scalar_128MiB_cube_isolated"] svg') + .focus() + .trigger('keydown', { key: 'ArrowRight' }); + cy.get('[data-testid="profile-scalar_128MiB_cube_isolated-value"]').should( + 'contain', + '0 ↔ 2: 15.30 SYS_CNT ticks', + ); + cy.get('[data-testid="profile-scalar_128MiB_vector_concurrent"] svg').should('exist'); + cy.screenshot('ascend-core-profiles-en', { capture: 'fullPage' }); + cy.visit('/zh/ubenchx/core-memory-profiles', dismiss); + cy.contains('h2', '核心访存特征').should('be.visible'); + cy.get('[data-testid="ubenchx-test-select"]').should('contain', '核心访存特征'); + cy.contains('不是核心间通信延迟').should('be.visible'); + cy.contains('没有网格级起始同步屏障').should('be.visible'); + cy.screenshot('ascend-core-profiles-zh', { capture: 'fullPage' }); + }); + it('returns the displayed matrix values and preserves absent GPU measurements', () => { + cy.request('/api/v1/views/ubenchx?test=all&gpu=Ascend%20950PR_9579').then(({ body }) => { + const panel = body.coreMemoryProfiles.gpus[0].panels[0]; + expect(panel.coreIds.slice(12, 16)).to.deep.equal([14, 15, 54, 55]); + expect(panel.matrix[0][14]).to.be.closeTo(96.70648193359, 1e-8); + expect(panel.unit).to.equal('SYS_CNT ticks'); + expect(body.smL2Distance.gpus).to.deep.equal([]); + }); + }); +}); + +it('unpins core-profile cells by repeated click or Enter and clears them outside or by button', () => { + cy.visit('/ubenchx/core-memory-profiles', dismiss); + const panel = '[data-testid="profile-scalar_128MiB_cube_isolated"]'; + const value = '[data-testid="profile-scalar_128MiB_cube_isolated-value"]'; + const clear = '[data-testid="profile-scalar_128MiB_cube_isolated-clear"]'; + cy.get(`${panel} svg rect`).eq(1).click(); + cy.get(value).should('contain', 'Pinned core pair: 0 ↔ 1: 19.03'); + cy.get(`${panel} svg rect`).eq(2).click(); + cy.get(value).should('contain', 'Pinned core pair: 0 ↔ 2: 15.30'); + cy.get(`${panel} svg rect`).eq(2).click(); + cy.get(value).should('not.contain', 'core pair:'); + cy.get(clear).should('be.disabled'); + cy.get(`${panel} svg`) + .trigger('keydown', { key: 'ArrowRight' }) + .trigger('keydown', { key: 'Enter' }); + cy.get(value).should('contain', 'Pinned core pair:'); + cy.get(`${panel} svg`).trigger('keydown', { key: 'Enter' }); + cy.get(clear).should('be.disabled'); + cy.get(`${panel} svg rect`).eq(1).click(); + cy.contains('h2', 'Core memory-access profiles').click(); + cy.get(clear).should('be.disabled'); + cy.get(`${panel} svg rect`).eq(1).click(); + cy.get(clear).click(); + cy.get(clear).should('be.disabled'); + cy.get(`${panel} svg rect`).eq(1).click(); + cy.get(`${panel} svg`).trigger('keydown', { key: 'Escape' }); + cy.get(clear).should('be.disabled'); +}); + +it('filters both devices on one page and preserves their API values and units', () => { + cy.visit('/ubenchx/core-memory-profiles', dismiss); + cy.get('[data-testid="sm-l2-heatmap"]').should('exist'); + cy.get('[data-testid="ascend-core-profiles"]').should('exist'); + cy.get('[data-testid="core-profile-hardware"]').should('contain', 'All hardware').click(); + cy.contains('[role="option"]', 'B200 SXM').click(); + cy.get('[data-testid="sm-l2-heatmap"]').should('be.visible'); + cy.get('[data-testid="ascend-core-profiles"]').should('not.exist'); + cy.request('/api/v1/views/ubenchx?test=core-memory-profiles&gpu=B200%20SXM').then(({ body }) => { + expect(body.gpus).to.have.length(1); + expect(body.gpus[0].unit).to.equal('clock64 cycles'); + cy.contains(`${body.gpus[0].stats.crossDieMean.toFixed(1)} cycles`).should('be.visible'); + }); + cy.get('[data-testid="core-profile-hardware"]').click(); + cy.contains('[role="option"]', 'Huawei 950PR').click(); + cy.get('[data-testid="sm-l2-heatmap"]').should('not.exist'); + cy.get('[data-testid="profile-scalar_128MiB_cube_isolated"] svg').focus(); + cy.get('[data-testid="profile-scalar_128MiB_cube_isolated-value"]').should( + 'contain', + '0 ↔ 1: 19.03 SYS_CNT ticks', + ); + cy.get('[data-testid="core-profile-hardware"]').click(); + cy.contains('[role="option"]', 'All hardware').click(); + cy.get('[data-testid="sm-l2-heatmap"]').should('exist'); + cy.get('[data-testid="ascend-core-profiles"]').should('exist'); + cy.screenshot('combined-core-profiles-desktop', { capture: 'fullPage' }); + cy.visit('/zh/ubenchx/sm-l2-distance', dismiss); + cy.location('pathname').should('equal', '/zh/ubenchx/core-memory-profiles'); + cy.viewport(390, 844); + cy.get('[data-testid="core-profile-hardware"]').should('contain', '全部硬件'); + cy.contains('不同设备上颜色或数值相同,并不代表延迟相同').should('be.visible'); + cy.get('[data-testid="sm-l2-heatmap"]').should('exist'); + cy.get('[data-testid="ascend-core-profiles"]').should('exist'); + cy.screenshot('combined-core-profiles-mobile-zh', { capture: 'fullPage' }); +}); + describe('Huawei copy-bandwidth evidence', () => { it('renders Huawei 950PR and qualifies the graph timing in English and Chinese', () => { cy.visit('/ubenchx/mem-bw', dismiss); diff --git a/packages/app/src/app/api/v1/views/ubenchx/route.test.ts b/packages/app/src/app/api/v1/views/ubenchx/route.test.ts index f09e55b33..fd72b407d 100644 --- a/packages/app/src/app/api/v1/views/ubenchx/route.test.ts +++ b/packages/app/src/app/api/v1/views/ubenchx/route.test.ts @@ -24,7 +24,7 @@ describe('ubenchx view', () => { expect(body.view).toBe('ubenchx'); expect(body.apiVersion).toBe('v1'); expect(body.test).toBe('all'); - expect(body.tests).toEqual(['mem-bw', 'sm-l2-distance', 'tpc-skyline']); + expect(body.tests).toEqual(['mem-bw', 'sm-l2-distance', 'tpc-skyline', 'core-memory-profiles']); expect(body.memBw.gpus).toHaveLength(1); expect(body.smL2Distance.gpus.length).toBeGreaterThanOrEqual(1); expect(body.tpcSkyline.gpus).toHaveLength(Object.keys(TPC_SKYLINE_RUNS).length); @@ -159,6 +159,57 @@ describe('ubenchx view', () => { }); }); +it('returns the Ascend core profiles with raw timer units and leaves unavailable tests empty', async () => { + const response = await GET(request({ test: 'all', gpu: 'ascend 950pr_9579' })); + expect(response.status).toBe(200); + const body = await response.json(); + expect(body.memBw.gpus).toEqual([]); + expect(body.smL2Distance.gpus).toEqual([]); + expect(body.tpcSkyline.gpus).toEqual([]); + const run = body.coreMemoryProfiles.gpus[0]; + expect(run.gpu).toBe('Ascend 950PR_9579'); + expect(run.panels.map((panel: { coreIds: number[] }) => panel.coreIds.length)).toEqual([ + 28, 28, 56, 56, + ]); + expect(run.panels[0].unit).toBe('SYS_CNT ticks'); + expect(run.panels[0].coreIds.slice(12, 16)).toEqual([14, 15, 54, 55]); + expect(run.panels[0].stats.withinDieGroupMean).toBeCloseTo(18.55499211685, 8); + expect(run.panels[0].stats.betweenDieGroupMean).toBeCloseTo(93.12987720723, 8); + expect(run.panels[0].matrix[0][14]).toBeCloseTo(96.70648193359, 8); + const onlyResponse = await GET( + request({ test: 'core-memory-profiles', gpu: 'Ascend 950PR_9579' }), + ); + const only = await onlyResponse.json(); + expect(only.gpus).toEqual(body.coreMemoryProfiles.gpus); + const missing = await GET(request({ test: 'core-memory-profiles', gpu: 'H100 SXM' })); + expect(missing.status).toBe(400); +}); + +it('combines both hardware profiles without converting or pooling their units', async () => { + const response = await GET(request({ test: 'core-memory-profiles' })); + const body = await response.json(); + expect(body.params).toEqual({ test: 'core-memory-profiles', gpu: 'all' }); + expect(body.gpus.map((run: { gpu: string }) => run.gpu)).toEqual([ + 'B200 SXM', + 'Ascend 950PR_9579', + ]); + const b200 = body.gpus[0]; + expect(b200).toMatchObject(transformSmL2Run('B200 SXM', SM_L2_RUNS['B200 SXM'])); + expect(b200.unit).toBe('clock64 cycles'); + expect(b200.colorLimits).toEqual([0, b200.stats.max]); + expect(body.gpus[1].panels[0].unit).toBe('SYS_CNT ticks'); + const filteredResponse = await GET(request({ test: 'core-memory-profiles', gpu: 'b200 sxm' })); + const filtered = await filteredResponse.json(); + expect(filtered.params.gpu).toBe('B200 SXM'); + expect(filtered.gpus).toEqual([b200]); + const allResponse = await GET(request({ test: 'all', gpu: 'B200 SXM' })); + const all = await allResponse.json(); + expect(all.coreMemoryProfiles.gpus).toEqual([b200]); + const legacyResponse = await GET(request({ test: 'sm-l2-distance', gpu: 'B200 SXM' })); + const legacy = await legacyResponse.json(); + expect(legacy.gpus[0]).toEqual(transformSmL2Run('B200 SXM', SM_L2_RUNS['B200 SXM'])); +}); + it('exposes Huawei rotating-copy evidence without inventing missing tests or sizes', async () => { const response = await GET(request({ test: 'all', gpu: 'huawei 950pr' })); expect(response.status).toBe(200); diff --git a/packages/app/src/app/api/v1/views/ubenchx/route.ts b/packages/app/src/app/api/v1/views/ubenchx/route.ts index d2c8eaf25..5ad92c5e3 100644 --- a/packages/app/src/app/api/v1/views/ubenchx/route.ts +++ b/packages/app/src/app/api/v1/views/ubenchx/route.ts @@ -1,3 +1,8 @@ +import { + CORE_PROFILE_GPU, + CORE_PROFILE_GPU_KEYS, + coreMemoryProfileResults, +} from '@/components/ubenchx/core-memory-profiles'; import { SM_L2_RUNS } from '@/components/ubenchx/sm-l2-data'; import { transformSmL2Run } from '@/components/ubenchx/sm-l2-transform'; import { TPC_SKYLINE_RUNS } from '@/components/ubenchx/tpc-skyline-data'; @@ -12,7 +17,12 @@ import type { NextRequest } from 'next/server'; export const dynamic = 'force-dynamic'; -const AVAILABLE_TESTS = ['mem-bw', 'sm-l2-distance', 'tpc-skyline'] as const; +const AVAILABLE_TESTS = [ + 'mem-bw', + 'sm-l2-distance', + 'tpc-skyline', + 'core-memory-profiles', +] as const; /** TPC per GPC groupings for every GPU (`gpu=all`, the default) or one GPU. */ function tpcSkylineResults(gpu: string) { @@ -28,6 +38,19 @@ export function GET(request: NextRequest) { const test = parseEnumParam(s.get('test'), 'test', ['all', ...AVAILABLE_TESTS], 'all'); const rawGpu = s.get('gpu'); + if (test === 'core-memory-profiles') { + const gpu = parseEnumParam(rawGpu, 'gpu', ['all', ...CORE_PROFILE_GPU_KEYS], 'all'); + return Promise.resolve( + cachedJson({ + apiVersion: 'v1', + view: 'ubenchx', + test, + params: { test, gpu }, + gpus: coreMemoryProfileResults(gpu), + }), + ); + } + if (test === 'tpc-skyline') { const gpuKeys = Object.keys(TPC_SKYLINE_RUNS); const gpu = parseEnumParam(s.get('gpu'), 'gpu', ['all', ...gpuKeys], 'all'); @@ -43,13 +66,18 @@ export function GET(request: NextRequest) { } if (test === 'mem-bw' || test === 'all') { - const gpuKeys = Object.keys(UBENCHX_RUNS); + const gpuKeys = + test === 'all' + ? [...Object.keys(UBENCHX_RUNS), CORE_PROFILE_GPU] + : Object.keys(UBENCHX_RUNS); const gpu = parseEnumParam(s.get('gpu'), 'gpu', ['all', ...gpuKeys], gpuKeys[0]); const memBwResults = gpu === 'all' ? Object.entries(UBENCHX_RUNS).map(([key, run]) => transformUbenchxRun(key, run)) - : [transformUbenchxRun(gpu, UBENCHX_RUNS[gpu])]; + : UBENCHX_RUNS[gpu] + ? [transformUbenchxRun(gpu, UBENCHX_RUNS[gpu])] + : []; if (test === 'mem-bw') { return Promise.resolve( @@ -80,6 +108,9 @@ export function GET(request: NextRequest) { tests: AVAILABLE_TESTS, memBw: { gpus: memBwResults }, smL2Distance: { gpus: smL2Results }, + coreMemoryProfiles: { + gpus: coreMemoryProfileResults(rawGpu === null ? 'all' : gpu), + }, // Like smL2Distance, default to every GPU rather than mem-bw's first one, and // match the GPU key case-insensitively as parseEnumParam does for the others. tpcSkyline: { diff --git a/packages/app/src/app/ubenchx/core-memory-profiles/page.tsx b/packages/app/src/app/ubenchx/core-memory-profiles/page.tsx new file mode 100644 index 000000000..e60db61ae --- /dev/null +++ b/packages/app/src/app/ubenchx/core-memory-profiles/page.tsx @@ -0,0 +1,36 @@ +import type { Metadata } from 'next'; + +import { CoreMemoryProfilesContent } from '@/components/ubenchx/CoreMemoryProfilesContent'; +import { UbenchxHub } from '@/components/ubenchx/UbenchxHub'; +import { enAlternates } from '@/lib/i18n/i18n'; +import { SITE_URL } from '@semianalysisai/inferencex-constants'; + +const TITLE = 'ubenchX: Core memory-access profiles'; +const DESCRIPTION = + 'Compare B200 SM and Huawei 950PR Cube/Vector memory-access profiles, preserving each device’s native timer units and measurement conditions.'; + +export const metadata: Metadata = { + title: TITLE, + description: DESCRIPTION, + alternates: enAlternates('/ubenchx/core-memory-profiles'), + robots: { index: false, follow: false }, + openGraph: { + title: `${TITLE} | InferenceX`, + description: DESCRIPTION, + url: `${SITE_URL}/ubenchx/core-memory-profiles`, + }, + twitter: { title: `${TITLE} | InferenceX`, description: DESCRIPTION }, +}; + +export default function UbenchxCoreMemoryProfilesPage() { + return ( +
+
+
+ + +
+
+
+ ); +} diff --git a/packages/app/src/app/ubenchx/sm-l2-distance/page.tsx b/packages/app/src/app/ubenchx/sm-l2-distance/page.tsx index 68d3f3ef4..2a2db9944 100644 --- a/packages/app/src/app/ubenchx/sm-l2-distance/page.tsx +++ b/packages/app/src/app/ubenchx/sm-l2-distance/page.tsx @@ -1,36 +1,5 @@ -import type { Metadata } from 'next'; +import { permanentRedirect } from 'next/navigation'; -import { SmL2Content } from '@/components/ubenchx/SmL2Heatmap'; -import { UbenchxHub } from '@/components/ubenchx/UbenchxHub'; -import { enAlternates } from '@/lib/i18n/i18n'; -import { SITE_URL } from '@semianalysisai/inferencex-constants'; - -const TITLE = 'ubenchX: SM-SM L2 Latency Difference'; -const DESCRIPTION = - 'L2 pointer-chase microbenchmark showing SM-to-SM latency differences, revealing GPC and die topology structure on NVIDIA Blackwell GPUs.'; - -export const metadata: Metadata = { - title: TITLE, - description: DESCRIPTION, - alternates: enAlternates('/ubenchx/sm-l2-distance'), - robots: { index: false, follow: false }, - openGraph: { - title: `${TITLE} | InferenceX`, - description: DESCRIPTION, - url: `${SITE_URL}/ubenchx/sm-l2-distance`, - }, - twitter: { title: `${TITLE} | InferenceX`, description: DESCRIPTION }, -}; - -export default function UbenchxSmL2DistancePage() { - return ( -
-
-
- - -
-
-
- ); +export default function LegacySmL2Page() { + permanentRedirect('/ubenchx/core-memory-profiles'); } diff --git a/packages/app/src/app/zh/ubenchx/core-memory-profiles/page.tsx b/packages/app/src/app/zh/ubenchx/core-memory-profiles/page.tsx new file mode 100644 index 000000000..5240fc805 --- /dev/null +++ b/packages/app/src/app/zh/ubenchx/core-memory-profiles/page.tsx @@ -0,0 +1,37 @@ +import type { Metadata } from 'next'; + +import { CoreMemoryProfilesContent } from '@/components/ubenchx/CoreMemoryProfilesContent'; +import { UbenchxHub } from '@/components/ubenchx/UbenchxHub'; +import { zhAlternates, ZH_OG_LOCALE } from '@/lib/i18n/i18n'; +import { SITE_URL } from '@semianalysisai/inferencex-constants'; + +const TITLE = 'ubenchX:核心访存特征'; +const DESCRIPTION = + '对比 B200 SM 与 Huawei 950PR Cube/Vector 的访存特征,保留各设备原始计时单位和测试条件。'; + +export const metadata: Metadata = { + title: TITLE, + description: DESCRIPTION, + alternates: zhAlternates('/ubenchx/core-memory-profiles'), + robots: { index: false, follow: false }, + openGraph: { + title: `${TITLE} | InferenceX`, + description: DESCRIPTION, + url: `${SITE_URL}/zh/ubenchx/core-memory-profiles`, + locale: ZH_OG_LOCALE, + }, + twitter: { title: `${TITLE} | InferenceX`, description: DESCRIPTION }, +}; + +export default function UbenchxCoreMemoryProfilesPageZh() { + return ( +
+
+
+ + +
+
+
+ ); +} diff --git a/packages/app/src/app/zh/ubenchx/sm-l2-distance/page.tsx b/packages/app/src/app/zh/ubenchx/sm-l2-distance/page.tsx index 1f0cde4a6..3465cc495 100644 --- a/packages/app/src/app/zh/ubenchx/sm-l2-distance/page.tsx +++ b/packages/app/src/app/zh/ubenchx/sm-l2-distance/page.tsx @@ -1,37 +1,5 @@ -import type { Metadata } from 'next'; +import { permanentRedirect } from 'next/navigation'; -import { SmL2Content } from '@/components/ubenchx/SmL2Heatmap'; -import { UbenchxHub } from '@/components/ubenchx/UbenchxHub'; -import { zhAlternates, ZH_OG_LOCALE } from '@/lib/i18n/i18n'; -import { SITE_URL } from '@semianalysisai/inferencex-constants'; - -const TITLE = 'ubenchX:SM 间 L2 延迟差异'; -const DESCRIPTION = - '基于 L2 指针追踪的微基准测试,展示 SM 间延迟差异,揭示 NVIDIA Blackwell GPU 上的 GPC 和 die 拓扑结构。'; - -export const metadata: Metadata = { - title: TITLE, - description: DESCRIPTION, - alternates: zhAlternates('/ubenchx/sm-l2-distance'), - robots: { index: false, follow: false }, - openGraph: { - title: `${TITLE} | InferenceX`, - description: DESCRIPTION, - url: `${SITE_URL}/zh/ubenchx/sm-l2-distance`, - locale: ZH_OG_LOCALE, - }, - twitter: { title: `${TITLE} | InferenceX`, description: DESCRIPTION }, -}; - -export default function UbenchxSmL2DistancePageZh() { - return ( -
-
-
- - -
-
-
- ); +export default function LegacySmL2Page() { + permanentRedirect('/zh/ubenchx/core-memory-profiles'); } diff --git a/packages/app/src/components/ubenchx/CoreMemoryProfilesContent.tsx b/packages/app/src/components/ubenchx/CoreMemoryProfilesContent.tsx new file mode 100644 index 000000000..afa5f4b28 --- /dev/null +++ b/packages/app/src/components/ubenchx/CoreMemoryProfilesContent.tsx @@ -0,0 +1,376 @@ +'use client'; + +import * as d3 from 'd3'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { track } from '@/lib/analytics/analytics'; +import { useLocale } from '@/lib/i18n/use-locale'; +import { + coreMemoryProfiles, + CORE_PROFILE_GPU, + CORE_PROFILE_GPU_KEYS, + type CoreProfilePanel, +} from './core-memory-profiles'; +import { SmL2Content } from './SmL2Heatmap'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; + +const STRINGS = { + en: { + noPairs: 'No pairs', + title: 'Core memory-access profiles', + hardware: 'Hardware', + allHardware: 'All hardware', + comparison: + 'Compare memory-access grouping patterns on B200 and Huawei 950PR. Each device keeps its own color scale: B200 uses clock64 cycles; 950PR uses SYS_CNT ticks. Equal colors or numbers across devices do not mean equal latency.', + subtitle: 'Ascend 950PR_9579 · 128 MiB · Cube and Vector scalar controllers', + isolated: 'One active core', + concurrent: 'Concurrent launch', + core: 'Physical core ID', + units: 'Mean absolute difference (SYS_CNT ticks)', + within: 'Within decoded die group', + between: 'Between decoded die groups', + instructions: + 'Hover or focus a heatmap; use arrow keys to inspect core pairs. Click or press Enter to pin; repeat to unpin. Click outside or press Escape to clear.', + method: + 'Both core types execute the same scalar pointer chase on one allocation. Six passes are averaged at each matched address, then the mean absolute difference between each pair of core profiles is computed.', + limits: + 'These values are differences between memory-access profiles, not core-to-core latency, wire distance or physical coordinates. SYS_CNT ticks are not clock64 cycles or nanoseconds. Runtime IDs contain gaps; their numeric spacing is not geometric spacing.', + concurrentLimit: + 'Concurrent launches have no grid-wide starting barrier. Their fine structure is less repeatable than the broad grouping; these panels do not establish which cores physically share a cache.', + source: 'Source data', + methodology: 'Methodology', + selected: 'Core pair', + pinned: 'Pinned core pair', + clear: 'Clear selection', + sharedScale: 'All four panels use the same color scale.', + }, + zh: { + noPairs: '无核心对', + title: '核心访存特征', + hardware: '硬件', + allHardware: '全部硬件', + comparison: + '对比 B200 与 Huawei 950PR 的访存分组模式。各设备使用独立色标:B200 以 clock64 周期计,950PR 以 SYS_CNT ticks 计。不同设备上颜色或数值相同,并不代表延迟相同。', + subtitle: 'Ascend 950PR_9579 · 128 MiB · Cube 与 Vector 标量控制器', + isolated: '单个核心执行', + concurrent: '并发启动', + core: '物理核心 ID', + units: '平均绝对差(SYS_CNT ticks)', + within: '解码出的同一 die 分组内', + between: '解码出的不同 die 分组间', + instructions: + '悬停或聚焦热力图,用方向键查看核心对;点击或按 Enter 固定,再次操作可取消固定;点击图外或按 Escape 清除。', + method: + '两类核心在同一块分配的内存上执行相同的标量指针追踪。先在每个对应地址上对六次遍历取平均,再计算每对核心访存特征之间的平均绝对差。', + limits: + '数值表示访存特征之间的差异,不是核心间通信延迟、连线距离或物理坐标。SYS_CNT ticks 不等同于 clock64 周期或纳秒。运行时 ID 存在空缺,数值间距不代表空间距离。', + concurrentLimit: + '并发启动没有网格级起始同步屏障。相比整体分组,细节模式的可重复性较弱;这些图不能确定哪些核心在物理上共享缓存。', + source: '数据来源', + methodology: '测试方法', + selected: '核心对', + pinned: '已固定的核心对', + clear: '清除选择', + sharedScale: '四幅图使用相同的色标范围。', + }, +} as const; + +type Copy = (typeof STRINGS)[keyof typeof STRINGS]; +function Panel({ panel, max, text }: { panel: CoreProfilePanel; max: number; text: Copy }) { + const panelRef = useRef(null); + const svgRef = useRef(null); + const [cell, setCell] = useState<[number, number] | null>(null); + const [pinned, setPinned] = useState(false); + const n = panel.coreIds.length, + extent = 320, + start = 54, + top = 22, + step = extent / n; + const colors = useMemo(() => d3.scaleSequential(d3.interpolateReds).domain([0, max]), [max]); + const ticks = [ + ...new Set([0, Math.floor(n / 4), Math.floor(n / 2), Math.floor((3 * n) / 4), n - 1]), + ]; + const id = `profile-${panel.condition}`; + const clear = useCallback( + (reason: string) => { + setCell(null); + setPinned(false); + track('ubenchx_core_profile_cell_cleared', { condition: panel.condition, reason }); + }, + [panel.condition], + ); + const hasCell = cell !== null; + useEffect(() => { + if (!hasCell) return; + const outside = (event: PointerEvent) => { + if (event.target instanceof Node && !panelRef.current?.contains(event.target)) + clear('outside'); + }; + const escape = (event: KeyboardEvent) => { + if (event.key === 'Escape') clear('escape'); + }; + document.addEventListener('pointerdown', outside); + document.addEventListener('keydown', escape); + return () => { + document.removeEventListener('pointerdown', outside); + document.removeEventListener('keydown', escape); + }; + }, [hasCell, clear]); + const hitTest = (event: { + currentTarget: SVGSVGElement; + clientX: number; + clientY: number; + }): [number, number] | null => { + const box = event.currentTarget.getBoundingClientRect(); + const j = Math.floor((((event.clientX - box.left) * 420) / box.width - start) / step); + const i = Math.floor((((event.clientY - box.top) * 420) / box.height - top) / step); + return i >= 0 && j >= 0 && i < n && j < n ? [i, j] : null; + }; + const choose = (pair: [number, number]) => { + setCell(pair); + setPinned(true); + track('ubenchx_core_profile_cell_selected', { + condition: panel.condition, + row: panel.coreIds[pair[0]], + column: panel.coreIds[pair[1]], + }); + }; + return ( +
+

+ {panel.coreType === 'cube' ? 'Cube' : 'Vector'} · {text[panel.launchMode]} +

+ { + if (!cell) setCell([0, 1]); + }} + onPointerMove={(event) => { + if (!pinned) setCell(hitTest(event)); + }} + onPointerLeave={() => { + if (!pinned) setCell(null); + }} + onBlur={() => { + if (!pinned) setCell(null); + }} + onClick={(event) => { + const pair = hitTest(event); + svgRef.current?.focus({ preventScroll: true }); + if (!pair) { + clear('blank'); + return; + } + if (pinned && cell && cell[0] === pair[0] && cell[1] === pair[1]) clear('toggle'); + else choose(pair); + }} + onKeyDown={(event) => { + if (event.key === 'Enter' && cell) { + event.preventDefault(); + if (pinned) clear('toggle'); + else choose(cell); + return; + } + const delta: Record = { + ArrowUp: [-1, 0], + ArrowDown: [1, 0], + ArrowLeft: [0, -1], + ArrowRight: [0, 1], + }; + if (delta[event.key]) { + event.preventDefault(); + const [i, j] = cell ?? [0, 0]; + const [di, dj] = delta[event.key]; + setPinned(false); + setCell([Math.max(0, Math.min(n - 1, i + di)), Math.max(0, Math.min(n - 1, j + dj))]); + } + }} + > + {`${panel.coreType} ${text[panel.launchMode]}`} + {panel.matrix.flatMap((row, i) => + row.map((value, j) => ( + + )), + )} + + + {ticks.map((i) => ( + + + {panel.coreIds[i]} + + + {panel.coreIds[i]} + + + ))} + + {text.core} + + + {text.core} + + {cell && ( + + )} + + + {cell + ? `${pinned ? text.pinned : text.selected}: ${panel.coreIds[cell[0]]} ↔ ${panel.coreIds[cell[1]]}: ${panel.matrix[cell[0]][cell[1]].toFixed(2)} SYS_CNT ticks` + : text.instructions} + + +

+ {text.within}: {panel.stats.withinDieGroupMean?.toFixed(2) ?? text.noPairs} · {text.between} + : {panel.stats.betweenDieGroupMean?.toFixed(2) ?? text.noPairs} SYS_CNT ticks +

+
+ ); +} + +function AscendCoreProfiles() { + const locale = useLocale(), + t = STRINGS[locale]; + const result = useMemo(coreMemoryProfiles, []); + return ( +
+
+

Huawei 950PR

+

{t.subtitle}

+
+

{t.limits}

+
+

{t.units}

+
`${d3.interpolateReds(i / 10)} ${i * 10}%`).join(', ')})`, + }} + /> +
+ 0 + {result.colorLimits[1].toFixed(2)} +
+

{t.sharedScale}

+
+
+ {result.panels.map((panel) => ( + + ))} +
+
+

{t.methodology}

+

{t.method}

+

{t.concurrentLimit}

+ + {t.source} + +
+
+ ); +} + +export function CoreMemoryProfilesContent() { + const locale = useLocale(); + const t = STRINGS[locale]; + const [gpu, setGpu] = useState('all'); + return ( +
+
+

{t.title}

+

{t.comparison}

+
+
+ + +
+ {gpu !== CORE_PROFILE_GPU && } + {(gpu === 'all' || gpu === CORE_PROFILE_GPU) && ( +
+ +
+ )} +
+ ); +} diff --git a/packages/app/src/components/ubenchx/SmL2Heatmap.tsx b/packages/app/src/components/ubenchx/SmL2Heatmap.tsx index 3ba7449cc..c5b2e5f62 100644 --- a/packages/app/src/components/ubenchx/SmL2Heatmap.tsx +++ b/packages/app/src/components/ubenchx/SmL2Heatmap.tsx @@ -12,11 +12,8 @@ import { transformSmL2Run, type SmL2ViewResult } from './sm-l2-transform'; const STRINGS = { en: { - pageTitle: 'SM-SM L2 Latency Difference', - pageSubtitle: - 'Pointer-chase L2 cache benchmark revealing SM-to-SM latency differences and GPC/die topology.', heatmapTitle: 'SM-SM L2 Latency Difference', - colorBarLabel: 'mean |diff| per address (cycles)', + colorBarLabel: 'mean |diff| per address (clock64 cycles)', tooltipSm: 'SM', tooltipGpc: 'GPC', tooltipDie: 'Die', @@ -26,7 +23,7 @@ const STRINGS = { tooltipCol: 'column', methodology: 'Methodology', methodologyText: - 'L2 pointer-chase benchmark: each SM walks a linked-list through L2 cache lines, recording per-hop latency via clock64(). The matrix shows mean |diff| between per-address latency vectors of each SM pair, revealing shared L2 partition proximity.', + 'Each SM walks a linked list through L2 cache lines, recording per-hop latency with clock64(). Each cell is the mean absolute difference between two SMs’ matched-address latency profiles, not direct SM-to-SM communication latency or a physical distance.', statsIntraGpc: 'Intra-GPC mean', statsInterGpc: 'Inter-GPC (same die) mean', statsCrossDie: 'Cross-die mean', @@ -35,10 +32,8 @@ const STRINGS = { noData: 'No SM-L2 distance data available.', }, zh: { - pageTitle: 'SM 间 L2 延迟差异', - pageSubtitle: '基于指针追踪的 L2 缓存基准测试,揭示 SM 间延迟差异和 GPC/die 拓扑结构。', heatmapTitle: 'SM 间 L2 延迟差异', - colorBarLabel: '每地址平均 |差值|(周期)', + colorBarLabel: '每地址平均 |差值|(clock64 周期)', tooltipSm: 'SM', tooltipGpc: 'GPC', tooltipDie: 'Die', @@ -48,7 +43,7 @@ const STRINGS = { tooltipCol: '列', methodology: '测试方法', methodologyText: - 'L2 指针追踪基准测试:每个 SM 沿链表遍历 L2 缓存行,通过 clock64() 记录每跳延迟。矩阵展示每对 SM 的逐地址延迟向量的平均绝对差,揭示共享 L2 分区的远近关系。', + '每个 SM 沿链表遍历 L2 缓存行,并用 clock64() 记录每跳延迟。每个单元格表示两个 SM 在相同地址上测得的延迟特征之间的平均绝对差,既不是 SM 间直接通信延迟,也不是物理距离。', statsIntraGpc: 'GPC 内平均', statsInterGpc: '跨 GPC(同 die)平均', statsCrossDie: '跨 die 平均', @@ -348,17 +343,19 @@ function SmL2HeatmapChart({ result, locale }: { result: SmL2ViewResult; locale: ); } -export function SmL2Content() { +export function SmL2Content({ gpu = 'all' }: { gpu?: string }) { const locale = useLocale(); const t = STRINGS[locale]; const results = useMemo( () => - Object.entries(SM_L2_RUNS).map(([key, run]) => ({ - key, - view: transformSmL2Run(key, run), - })), - [], + Object.entries(SM_L2_RUNS) + .filter(([key]) => gpu === 'all' || gpu === key) + .map(([key, run]) => ({ + key, + view: transformSmL2Run(key, run), + })), + [gpu], ); if (results.length === 0) { @@ -367,11 +364,6 @@ export function SmL2Content() { return (
-
-

{t.pageTitle}

-

{t.pageSubtitle}

-
- {results.map(({ key, view }) => (

diff --git a/packages/app/src/components/ubenchx/UbenchxHub.tsx b/packages/app/src/components/ubenchx/UbenchxHub.tsx index 1b21c350e..9fc62f3bd 100644 --- a/packages/app/src/components/ubenchx/UbenchxHub.tsx +++ b/packages/app/src/components/ubenchx/UbenchxHub.tsx @@ -16,28 +16,29 @@ import { useLocale } from '@/lib/i18n/use-locale'; const STRINGS = { en: { title: 'ubenchX Microbenchmarks (Beta)', - subtitle: 'Low-level GPU microbenchmarks measuring fundamental hardware characteristics.', + subtitle: + 'Low-level accelerator microbenchmarks measuring fundamental hardware characteristics.', test: 'Microbenchmark', testTooltip: 'The ubenchX microbenchmark to display.', memBwTitle: 'HBM Bandwidth', - smL2Title: 'SM-SM L2 Latency Difference', tpcSkylineTitle: 'TPC Skyline', + coreProfilesTitle: 'Core memory-access profiles', }, zh: { title: 'ubenchX 微基准测试(Beta)', - subtitle: '底层 GPU 微基准测试,测量基础硬件特性。', + subtitle: '底层加速器微基准测试,测量基础硬件特性。', test: '微基准测试', testTooltip: '要显示的 ubenchX 微基准测试。', memBwTitle: 'HBM 带宽', - smL2Title: 'SM 间 L2 延迟差异', tpcSkylineTitle: 'TPC Skyline', + coreProfilesTitle: '核心访存特征', }, } as const; export const UBENCHX_TESTS = [ { slug: 'mem-bw', titleKey: 'memBwTitle' }, - { slug: 'sm-l2-distance', titleKey: 'smL2Title' }, { slug: 'tpc-skyline', titleKey: 'tpcSkylineTitle' }, + { slug: 'core-memory-profiles', titleKey: 'coreProfilesTitle' }, ] as const; export type UbenchxTestSlug = (typeof UBENCHX_TESTS)[number]['slug']; diff --git a/packages/app/src/components/ubenchx/core-memory-profiles.test.ts b/packages/app/src/components/ubenchx/core-memory-profiles.test.ts new file mode 100644 index 000000000..0691e5ece --- /dev/null +++ b/packages/app/src/components/ubenchx/core-memory-profiles.test.ts @@ -0,0 +1,57 @@ +import { describe, expect, it } from 'vitest'; +import { coreMemoryProfileResults, summarizeCoreProfile } from './core-memory-profiles'; + +describe('core profile pair statistics', () => { + it('averages unique off-diagonal pairs in their decoded groups', () => { + const result = summarizeCoreProfile( + [ + [0, 2, 8], + [2, 0, 10], + [8, 10, 0], + ], + ['A', 'A', 'B'], + ); + expect(result).toEqual({ withinDieGroupMean: 2, betweenDieGroupMean: 9 }); + }); + it('rejects malformed, asymmetric and nonfinite measurements', () => { + expect(() => summarizeCoreProfile([[0, 2]], ['A'])).toThrow('dimensions'); + expect(() => + summarizeCoreProfile( + [ + [0, 2], + [3, 0], + ], + ['A', 'B'], + ), + ).toThrow('symmetric'); + expect(() => + summarizeCoreProfile( + [ + [0, NaN], + [NaN, 0], + ], + ['A', 'B'], + ), + ).toThrow('Invalid'); + }); +}); + +it('preserves an absent pair class instead of inventing a zero measurement', () => { + expect( + summarizeCoreProfile( + [ + [0, 8], + [8, 0], + ], + ['A', 'B'], + ), + ).toEqual({ withinDieGroupMean: null, betweenDieGroupMean: 8 }); +}); + +it('filters the unified collection without inventing absent measurements', () => { + expect(coreMemoryProfileResults('H100 SXM')).toEqual([]); + expect(coreMemoryProfileResults('Ascend 950PR_9579')).toHaveLength(1); + const all = coreMemoryProfileResults(); + expect(all.map((run) => run.gpu)).toEqual(['B200 SXM', 'Ascend 950PR_9579']); + expect(coreMemoryProfileResults('B200 SXM')).toEqual([all[0]]); +}); diff --git a/packages/app/src/components/ubenchx/core-memory-profiles.ts b/packages/app/src/components/ubenchx/core-memory-profiles.ts new file mode 100644 index 000000000..6fb852b7c --- /dev/null +++ b/packages/app/src/components/ubenchx/core-memory-profiles.ts @@ -0,0 +1,93 @@ +import data from './data/ascend-core-profiles.json'; +import { SM_L2_RUNS } from './sm-l2-data'; +import { transformSmL2Run } from './sm-l2-transform'; + +export const CORE_PROFILE_GPU = 'Ascend 950PR_9579'; +export interface CoreProfilePanel { + readonly condition: string; + readonly coreType: 'cube' | 'vector'; + readonly launchMode: 'isolated' | 'concurrent'; + readonly coreIds: readonly number[]; + readonly dieGroups: readonly string[]; + readonly matrix: readonly (readonly number[])[]; + readonly unit: 'SYS_CNT ticks'; + readonly stats: { + readonly withinDieGroupMean: number | null; + readonly betweenDieGroupMean: number | null; + }; +} + +const mean = (xs: number[]) => (xs.length > 0 ? xs.reduce((a, b) => a + b, 0) / xs.length : null); + +export function summarizeCoreProfile( + matrix: readonly (readonly number[])[], + groups: readonly string[], +) { + if (matrix.length !== groups.length || matrix.some((row) => row.length !== groups.length)) { + throw new Error('Core profile dimensions do not match the ID groups'); + } + const within: number[] = [], + between: number[] = []; + matrix.forEach((row, i) => + row.forEach((value, j) => { + if (!Number.isFinite(value) || value < 0 || (i === j && value !== 0)) + throw new Error('Invalid profile distance'); + if (Math.abs(value - matrix[j][i]) > 1e-8) + throw new Error('Profile matrix must be symmetric'); + if (i < j) (groups[i] === groups[j] ? within : between).push(value); + }), + ); + return { withinDieGroupMean: mean(within), betweenDieGroupMean: mean(between) }; +} + +export function coreMemoryProfiles() { + const panels: CoreProfilePanel[] = data.panels.map((panel) => ({ + condition: panel.condition, + coreType: panel.condition.includes('_cube_') ? 'cube' : 'vector', + launchMode: panel.condition.endsWith('_isolated') ? 'isolated' : 'concurrent', + coreIds: panel.coreids, + dieGroups: panel.dieGroups, + matrix: panel.matrix, + unit: 'SYS_CNT ticks', + stats: summarizeCoreProfile(panel.matrix, panel.dieGroups), + })); + return { + gpu: CORE_PROFILE_GPU, + metadata: data.metadata, + panels, + colorLimits: data.color_limits, + sourceSha256: data.sourceSha256, + sourceUrl: + 'https://github.com/SemiAnalysisAI/InferenceX-app/blob/1de1fe014f05cdfb4fd029f5bd6d547a0ffbbdc7/packages/app/src/components/ubenchx/data/ascend-core-profiles.json', + metric: + 'Mean absolute difference between matched-address latency profiles after averaging six passes per address', + limitations: [ + 'Not core-to-core communication latency or geometric distance', + 'SYS_CNT ticks are not calibrated to clock64 cycles or nanoseconds', + 'Concurrent launches have no grid-wide starting barrier; their fine structure is less repeatable', + 'Runtime-ID die groups are not a recovered physical floorplan', + ], + }; +} + +/** One page/API collection, preserving each benchmark's native units and schema. */ +export const CORE_PROFILE_GPU_KEYS = [...Object.keys(SM_L2_RUNS), CORE_PROFILE_GPU]; + +export function coreMemoryProfileResults(gpu = 'all') { + const nvidia = Object.entries(SM_L2_RUNS) + .filter(([key]) => gpu === 'all' || gpu === key) + .map(([key, run]) => { + const view = transformSmL2Run(key, run); + return { + ...view, + unit: 'clock64 cycles', + metric: 'Mean absolute difference between matched-address latency profiles', + colorLimits: [0, view.stats.max], + limitations: [ + 'Profile differences are not direct SM-to-SM communication latency or physical coordinates', + 'clock64 cycles and Ascend SYS_CNT ticks are not directly comparable', + ], + }; + }); + return [...nvidia, ...(gpu === 'all' || gpu === CORE_PROFILE_GPU ? [coreMemoryProfiles()] : [])]; +} diff --git a/packages/app/src/components/ubenchx/data/ascend-core-profiles.json b/packages/app/src/components/ubenchx/data/ascend-core-profiles.json new file mode 100644 index 000000000..5eb637c8a --- /dev/null +++ b/packages/app/src/components/ubenchx/data/ascend-core-profiles.json @@ -0,0 +1,2791 @@ +{ + "panels": [ + { + "condition": "scalar_128MiB_cube_isolated", + "metric": "distance", + "coreids": [ + 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 66, 67, 68 + ], + "matrix": [ + [ + 0.0, 19.027974446614582, 15.300923665364582, 15.283406575520834, 19.580586751302082, + 15.349894205729166, 19.832946777343754, 16.487752278645836, 19.247151692708336, + 21.951802571614582, 19.190226236979168, 22.055155436197914, 21.287740071614586, + 21.827087402343754, 96.70648193359374, 96.00101725260416, 96.62278238932292, + 95.90114339192706, 96.65403238932292, 95.71311442057292, 95.3453369140625, + 94.90818277994792, 95.24820963541667, 94.66768391927083, 95.51359049479166, + 94.79604085286459, 94.73256429036458, 94.60552978515625 + ], + [ + 19.027974446614582, 0.0, 18.081013997395832, 15.829691569010416, 25.63102213541667, + 20.154398600260414, 16.420247395833332, 25.60260009765625, 15.530619303385418, + 23.85546875, 19.429707845052082, 18.3709716796875, 24.900065104166668, 20.837972005208332, + 95.14326985677083, 94.60972086588542, 94.913330078125, 94.37414550781249, + 94.80505371093751, 93.9951171875, 93.57114664713542, 93.33890787760417, 93.42869059244794, + 93.01369222005209, 93.54298909505206, 93.2154541015625, 93.31042480468751, + 92.8597412109375 + ], + [ + 15.300923665364582, 18.081013997395832, 0.0, 14.924173990885416, 16.8680419921875, + 16.530782063802082, 18.774169921875004, 17.871073404947914, 17.38360595703125, + 16.655151367187504, 16.687154134114586, 20.571858723958332, 21.251302083333332, + 19.516642252604164, 94.51045735677084, 93.80674235026041, 94.39298502604167, + 93.70560709635416, 94.48262532552083, 93.52315266927083, 93.09222412109375, + 92.7025146484375, 93.00575764973958, 92.42506917317708, 93.29840087890625, + 92.59476725260417, 92.56180826822916, 92.37972005208334 + ], + [ + 15.283406575520834, 15.829691569010416, 14.924173990885416, 0.0, 22.111226399739582, + 17.248087565104164, 15.53704833984375, 19.26847330729167, 16.892578125, + 21.400004069010418, 15.62353515625, 18.396708170572918, 22.923807779947918, + 21.096659342447918, 94.66469319661456, 94.0772705078125, 94.52947998046876, + 93.91265869140625, 94.50266520182292, 93.61175537109375, 93.20499674479166, + 92.84047444661459, 93.11625162760419, 92.64737955729169, 93.30391438802084, + 92.72226969401041, 92.74383544921876, 92.49546305338541 + ], + [ + 19.580586751302082, 25.63102213541667, 16.8680419921875, 22.111226399739582, 0.0, + 18.177469889322918, 26.117187499999996, 19.59051513671875, 23.158955891927082, + 18.67919921875, 22.012959798177086, 27.0980224609375, 19.468831380208332, + 22.501261393229164, 94.95231119791669, 94.22353108723956, 94.969970703125, + 94.13228352864583, 95.07657877604167, 94.046142578125, 93.66465250651042, + 93.22330729166666, 93.60666910807291, 92.97113037109375, 93.93011474609376, + 93.03181966145834, 92.9677734375, 92.953857421875 + ], + [ + 15.349894205729166, 20.154398600260414, 16.530782063802082, 17.248087565104164, + 18.177469889322918, 0.0, 16.958231608072918, 14.060343424479168, 14.851725260416664, + 17.33258056640625, 15.220133463541666, 18.770772298177086, 17.589090983072918, + 16.93341064453125, 95.14385986328125, 94.65169270833333, 95.11566162109375, + 94.45147705078125, 95.11460367838542, 94.22068277994791, 93.800048828125, + 93.45969645182292, 93.72395833333333, 93.18644205729167, 93.86267089843749, + 93.35361735026041, 93.35866292317708, 93.09238688151041 + ], + [ + 19.832946777343754, 16.420247395833332, 18.774169921875004, 15.53704833984375, + 26.117187499999996, 16.958231608072918, 0.0, 22.08367919921875, 12.689229329427084, + 22.894490559895832, 15.810485839843748, 14.5633544921875, 23.456868489583332, + 16.675455729166664, 94.26383463541666, 93.7852579752604, 94.04219563802084, + 93.57832845052083, 94.00919596354166, 93.19437662760416, 92.78586832682292, + 92.51798502604167, 92.66522216796875, 92.26422119140625, 92.81658935546874, + 92.47908528645831, 92.52750651041666, 92.05598958333334 + ], + [ + 16.487752278645836, 25.60260009765625, 17.871073404947914, 19.26847330729167, + 19.59051513671875, 14.060343424479168, 22.08367919921875, 0.0, 20.855590820312504, + 17.681172688802082, 17.703409830729168, 22.595682779947914, 19.69866943359375, + 20.511576334635414, 93.99208577473958, 93.44665527343749, 93.90232340494791, + 93.21258544921876, 93.91566975911458, 92.99843343098958, 92.64717610677084, + 92.31154378255209, 92.50899251302083, 92.01127115885416, 92.7205810546875, + 92.18707275390625, 92.18605550130209, 91.96901448567708 + ], + [ + 19.247151692708336, 15.530619303385418, 17.38360595703125, 16.892578125, + 23.158955891927082, 14.851725260416664, 12.689229329427084, 20.855590820312504, 0.0, + 19.97344970703125, 12.770100911458336, 15.278299967447918, 19.797098795572918, + 15.304951985677082, 94.02504475911459, 93.53096516927083, 93.92303466796875, + 93.26051839192709, 93.86370849609375, 93.06439208984375, 92.63810221354167, + 92.31760660807292, 92.50337727864581, 92.03824869791666, 92.7315673828125, + 92.26125081380209, 92.32484944661458, 91.95220947265624 + ], + [ + 21.951802571614582, 23.85546875, 16.655151367187504, 21.400004069010418, 18.67919921875, + 17.33258056640625, 22.894490559895832, 17.681172688802082, 19.97344970703125, 0.0, + 17.610697428385418, 22.286336263020832, 16.576334635416668, 16.896077473958332, + 94.15523274739583, 93.49163818359375, 94.21525065104166, 93.38309733072917, + 94.26529947916666, 93.28853352864583, 92.88397216796875, 92.4493408203125, + 92.81467692057291, 92.25311279296875, 93.03769938151042, 92.31131998697917, + 92.3729248046875, 92.22090657552083 + ], + [ + 19.190226236979168, 19.429707845052082, 16.687154134114586, 15.62353515625, + 22.012959798177086, 15.220133463541666, 15.810485839843748, 17.703409830729168, + 12.770100911458336, 17.610697428385418, 0.0, 15.839864095052084, 18.836079915364586, + 15.701070149739584, 93.63852945963541, 93.05700683593751, 93.58396402994792, + 92.88511149088542, 93.61789957682291, 92.69004313151041, 92.30623372395833, + 91.87738037109375, 92.15592447916667, 91.7264404296875, 92.42594401041667, + 91.78452555338541, 91.84478759765625, 91.59218343098959 + ], + [ + 22.055155436197914, 18.3709716796875, 20.571858723958332, 18.396708170572918, + 27.0980224609375, 18.770772298177086, 14.5633544921875, 22.595682779947914, + 15.278299967447918, 22.286336263020832, 15.839864095052084, 0.0, 22.102091471354168, + 14.932739257812498, 92.98677571614583, 92.46470133463541, 92.86531575520834, + 92.28165690104166, 92.86446126302084, 92.01094563802084, 91.70794677734375, + 91.37320963541667, 91.53082275390624, 91.11631266276042, 91.65325927734374, + 91.32088216145833, 91.33809407552084, 90.97965494791669 + ], + [ + 21.287740071614586, 24.900065104166668, 21.251302083333332, 22.923807779947918, + 19.468831380208332, 17.589090983072918, 23.456868489583332, 19.69866943359375, + 19.797098795572918, 16.576334635416668, 18.836079915364586, 22.102091471354168, 0.0, + 15.934163411458334, 93.28959147135417, 92.60577392578124, 93.31445312500001, + 92.48531087239583, 93.36881510416666, 92.4110107421875, 92.05141194661459, 91.58837890625, + 91.94394938151042, 91.42038981119794, 92.21543375651044, 91.50874837239583, + 91.54280598958334, 91.34936523437499 + ], + [ + 21.827087402343754, 20.837972005208332, 19.516642252604164, 21.096659342447918, + 22.501261393229164, 16.93341064453125, 16.675455729166664, 20.511576334635414, + 15.304951985677082, 16.896077473958332, 15.701070149739584, 14.932739257812498, + 15.934163411458334, 0.0, 92.36401367187501, 91.78599039713542, 92.28271484375, + 91.6282958984375, 92.25626627604166, 91.41585286458331, 91.00299072265625, + 90.687744140625, 90.92767333984375, 90.43471272786458, 91.13612874348958, + 90.60030110677083, 90.56298828124999, 90.3438720703125 + ], + [ + 96.70648193359374, 95.14326985677083, 94.51045735677084, 94.66469319661456, + 94.95231119791669, 95.14385986328125, 94.26383463541666, 93.99208577473958, + 94.02504475911459, 94.15523274739583, 93.63852945963541, 92.98677571614583, + 93.28959147135417, 92.36401367187501, 0.0, 17.39678955078125, 15.305053710937498, + 14.198486328125002, 21.145304361979164, 19.384236653645836, 18.27105712890625, + 17.156209309895832, 22.116190592447914, 19.083475748697918, 22.445699055989586, + 19.460530598958336, 23.982421875, 25.1165771484375 + ], + [ + 96.00101725260416, 94.60972086588542, 93.80674235026041, 94.0772705078125, + 94.22353108723956, 94.65169270833333, 93.7852579752604, 93.44665527343749, + 93.53096516927083, 93.49163818359375, 93.05700683593751, 92.46470133463541, + 92.60577392578124, 91.78599039713542, 17.39678955078125, 0.0, 17.984883626302086, + 13.138203938802084, 23.740417480468746, 20.875956217447914, 17.712158203125, + 16.022603352864586, 21.837320963541664, 16.709716796875, 24.972167968750004, + 19.38726806640625, 18.39898681640625, 25.247294108072914 + ], + [ + 96.62278238932292, 94.913330078125, 94.39298502604167, 94.52947998046876, 94.969970703125, + 95.11566162109375, 94.04219563802084, 93.90232340494791, 93.92303466796875, + 94.21525065104166, 93.58396402994792, 92.86531575520834, 93.31445312500001, + 92.28271484375, 15.305053710937498, 17.984883626302086, 0.0, 14.468343098958334, + 18.545125325520832, 17.649658203125, 14.034281412760416, 18.071573893229168, + 17.245951334635414, 15.904642740885416, 16.707132975260418, 20.496337890625, + 21.43013509114583, 23.107421875000004 + ], + [ + 95.90114339192706, 94.37414550781249, 93.70560709635416, 93.91265869140625, + 94.13228352864583, 94.45147705078125, 93.57832845052083, 93.21258544921876, + 93.26051839192709, 93.38309733072917, 92.88511149088542, 92.28165690104166, + 92.48531087239583, 91.6282958984375, 14.198486328125002, 13.138203938802084, + 14.468343098958334, 0.0, 21.265909830729168, 19.903889973958332, 16.623392740885418, + 14.52294921875, 20.215352376302086, 15.780171712239582, 21.514424641927082, + 19.096964518229168, 18.705322265625, 25.073120117187496 + ], + [ + 96.65403238932292, 94.80505371093751, 94.48262532552083, 94.50266520182292, + 95.07657877604167, 95.11460367838542, 94.00919596354166, 93.91566975911458, + 93.86370849609375, 94.26529947916666, 93.61789957682291, 92.86446126302084, + 93.36881510416666, 92.25626627604166, 21.145304361979164, 23.740417480468746, + 18.545125325520832, 21.265909830729168, 0.0, 12.948933919270834, 15.40899658203125, + 21.2266845703125, 15.306009928385418, 19.386332194010418, 15.466247558593752, + 20.056477864583332, 22.554809570312496, 18.44803873697917 + ], + [ + 95.71311442057292, 93.9951171875, 93.52315266927083, 93.61175537109375, 94.046142578125, + 94.22068277994791, 93.19437662760416, 92.99843343098958, 93.06439208984375, + 93.28853352864583, 92.69004313151041, 92.01094563802084, 92.4110107421875, + 91.41585286458331, 19.384236653645836, 20.875956217447914, 17.649658203125, + 19.903889973958332, 12.948933919270834, 0.0, 15.156066894531252, 19.115681966145836, + 14.93292236328125, 18.479715983072918, 17.19207763671875, 17.745361328125, + 21.489990234375, 17.435546875 + ], + [ + 95.3453369140625, 93.57114664713542, 93.09222412109375, 93.20499674479166, + 93.66465250651042, 93.800048828125, 92.78586832682292, 92.64717610677084, + 92.63810221354167, 92.88397216796875, 92.30623372395833, 91.70794677734375, + 92.05141194661459, 91.00299072265625, 18.27105712890625, 17.712158203125, + 14.034281412760416, 16.623392740885418, 15.40899658203125, 15.156066894531252, 0.0, + 15.717142740885418, 12.158976236979168, 13.731770833333332, 14.570271809895832, + 15.10894775390625, 16.77740478515625, 16.001525878906254 + ], + [ + 94.90818277994792, 93.33890787760417, 92.7025146484375, 92.84047444661459, + 93.22330729166666, 93.45969645182292, 92.51798502604167, 92.31154378255209, + 92.31760660807292, 92.4493408203125, 91.87738037109375, 91.37320963541667, 91.58837890625, + 90.687744140625, 17.156209309895832, 16.022603352864586, 18.071573893229168, + 14.52294921875, 21.2266845703125, 19.115681966145836, 15.717142740885418, 0.0, + 19.861918131510418, 12.777852376302086, 22.342915852864582, 14.482055664062498, + 15.219970703125, 22.359659830729168 + ], + [ + 95.24820963541667, 93.42869059244794, 93.00575764973958, 93.11625162760419, + 93.60666910807291, 93.72395833333333, 92.66522216796875, 92.50899251302083, + 92.50337727864581, 92.81467692057291, 92.15592447916667, 91.53082275390624, + 91.94394938151042, 90.92767333984375, 22.116190592447914, 21.837320963541664, + 17.245951334635414, 20.215352376302086, 15.306009928385418, 14.93292236328125, + 12.158976236979168, 19.861918131510418, 0.0, 16.51888020833333, 12.7291259765625, + 17.723286946614582, 18.892842610677082, 15.931009928385418 + ], + [ + 94.66768391927083, 93.01369222005209, 92.42506917317708, 92.64737955729169, + 92.97113037109375, 93.18644205729167, 92.26422119140625, 92.01127115885416, + 92.03824869791666, 92.25311279296875, 91.7264404296875, 91.11631266276042, + 91.42038981119794, 90.43471272786458, 19.083475748697918, 16.709716796875, + 15.904642740885416, 15.780171712239582, 19.386332194010418, 18.479715983072918, + 13.731770833333332, 12.777852376302086, 16.51888020833333, 0.0, 17.798095703125, + 16.21746826171875, 14.331888834635418, 21.164164225260418 + ], + [ + 95.51359049479166, 93.54298909505206, 93.29840087890625, 93.30391438802084, + 93.93011474609376, 93.86267089843749, 92.81658935546874, 92.7205810546875, + 92.7315673828125, 93.03769938151042, 92.42594401041667, 91.65325927734374, + 92.21543375651044, 91.13612874348958, 22.445699055989586, 24.972167968750004, + 16.707132975260418, 21.514424641927082, 15.466247558593752, 17.19207763671875, + 14.570271809895832, 22.342915852864582, 12.7291259765625, 17.798095703125, 0.0, + 21.84332275390625, 21.957784016927082, 18.087178548177086 + ], + [ + 94.79604085286459, 93.2154541015625, 92.59476725260417, 92.72226969401041, + 93.03181966145834, 93.35361735026041, 92.47908528645831, 92.18707275390625, + 92.26125081380209, 92.31131998697917, 91.78452555338541, 91.32088216145833, + 91.50874837239583, 90.60030110677083, 19.460530598958336, 19.38726806640625, + 20.496337890625, 19.096964518229168, 20.056477864583332, 17.745361328125, + 15.10894775390625, 14.482055664062498, 17.723286946614582, 16.21746826171875, + 21.84332275390625, 0.0, 15.520385742187502, 16.835693359375 + ], + [ + 94.73256429036458, 93.31042480468751, 92.56180826822916, 92.74383544921876, 92.9677734375, + 93.35866292317708, 92.52750651041666, 92.18605550130209, 92.32484944661458, + 92.3729248046875, 91.84478759765625, 91.33809407552084, 91.54280598958334, + 90.56298828124999, 23.982421875, 18.39898681640625, 21.43013509114583, 18.705322265625, + 22.554809570312496, 21.489990234375, 16.77740478515625, 15.219970703125, + 18.892842610677082, 14.331888834635418, 21.957784016927082, 15.520385742187502, 0.0, + 22.3677978515625 + ], + [ + 94.60552978515625, 92.8597412109375, 92.37972005208334, 92.49546305338541, + 92.953857421875, 93.09238688151041, 92.05598958333334, 91.96901448567708, + 91.95220947265624, 92.22090657552083, 91.59218343098959, 90.97965494791669, + 91.34936523437499, 90.3438720703125, 25.1165771484375, 25.247294108072914, + 23.107421875000004, 25.073120117187496, 18.44803873697917, 17.435546875, + 16.001525878906254, 22.359659830729168, 15.931009928385418, 21.164164225260418, + 18.087178548177086, 16.835693359375, 22.3677978515625, 0.0 + ] + ], + "units": "SYS_CNT ticks", + "source": { + "name": "scalar_128MiB_cube_isolated", + "matrices": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_cube_isolated.npz", + "sha256": "7f678aae8067ad7464d0a97411abdbbb63261f4da330ae76bd9fe53443b404f6", + "bytes": 2506885 + }, + "statistics": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_cube_isolated.json", + "sha256": "897ad327c8a8e80d69c53157105adf6a97085612a00851c9797b96558976f91c", + "bytes": 50296 + } + }, + "pair_statistics": { + "all_unique_core_pairs": { + "count": 378, + "mean": 57.22345105260349, + "std": 37.33750015815064, + "quantiles": { + "0.0": 12.158976236979168, + "0.01": 12.776069539388024, + "0.05": 14.931454467773436, + "0.25": 18.41124979654948, + "0.5": 90.99132283528647, + "0.75": 93.08526611328125, + "0.95": 94.79739278157552, + "0.99": 95.9241143798828, + "1.0": 96.70648193359374 + } + }, + "within_decoded_die": { + "count": 182, + "mean": 18.554992116851245, + "std": 3.1748091800094915, + "quantiles": { + "0.0": 12.158976236979168, + "0.01": 12.721545613606771, + "0.05": 14.067250569661459, + "0.25": 15.931798299153646, + "0.5": 18.224263509114586, + "0.75": 21.133143107096352, + "0.95": 23.97607421875, + "0.99": 25.7233935546875, + "1.0": 27.0980224609375 + } + }, + "between_decoded_die": { + "count": 196, + "mean": 93.12987720723055, + "std": 1.2340974582112165, + "quantiles": { + "0.0": 90.3438720703125, + "0.01": 90.55657450358072, + "0.05": 91.27469380696614, + "0.25": 92.31004842122397, + "0.5": 93.03475952148438, + "0.75": 93.91751098632812, + "0.95": 95.14341735839844, + "0.99": 96.62434488932293, + "1.0": 96.70648193359374 + } + } + }, + "dieGroups": [ + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B" + ] + }, + { + "condition": "scalar_128MiB_cube_concurrent", + "metric": "distance", + "coreids": [ + 0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 66, 67, 68 + ], + "matrix": [ + [ + 0.0, 35.94970703125, 28.267130533854168, 24.744099934895836, 37.34417724609375, + 30.532307942708332, 29.8131103515625, 20.894042968749996, 37.64971923828125, + 33.197509765625, 34.327433268229164, 33.532328287760414, 30.786356608072918, + 40.900187174479164, 92.80275472005208, 74.6177978515625, 89.49163818359374, + 75.70969645182291, 87.09710693359375, 66.18766276041667, 89.31703694661459, + 106.05940755208334, 102.22385660807292, 58.711527506510414, 85.63018798828125, + 102.55999755859374, 102.19559733072916, 74.99434407552084 + ], + [ + 35.94970703125, 0.0, 34.07975260416666, 40.39270019531249, 30.73883056640625, + 26.036661783854168, 34.095784505208336, 38.664510091145836, 30.18752034505208, + 36.709065755208336, 27.768839518229164, 32.861673990885414, 35.304545084635414, + 30.878255208333332, 65.93406168619791, 51.92789713541667, 62.621236165364586, + 52.37416585286458, 60.159810384114586, 43.314534505208336, 62.678202311197914, + 78.34749348958333, 74.26320393880208, 41.419942220052086, 59.03456624348958, + 74.66033935546875, 75.09415690104167, 51.227498372395836 + ], + [ + 28.267130533854168, 34.07975260416666, 0.0, 27.390177408854164, 31.25270589192708, + 28.188110351562496, 26.878702799479168, 28.532389322916664, 33.407246907552086, + 26.71341959635416, 27.917236328124996, 29.49338785807291, 16.283060709635414, + 37.08638509114583, 89.79176839192708, 71.29158528645834, 86.46270751953125, + 71.53261311848959, 84.38425699869792, 62.889567057291664, 86.61810302734375, + 103.70756022135417, 100.00054931640625, 54.94435628255208, 82.74163818359374, + 100.18544514973958, 99.9605712890625, 73.17451985677083 + ], + [ + 24.744099934895836, 40.39270019531249, 27.390177408854164, 0.0, 41.400126139322914, + 34.6890869140625, 28.388712565104164, 25.960327148437496, 41.058451334635414, + 33.2744140625, 36.7115478515625, 34.781840006510414, 28.344380696614586, + 44.106852213541664, 99.69036865234376, 81.03556315104167, 96.35536702473956, + 82.43463134765625, 93.97524007161458, 72.09049479166666, 96.44468180338541, + 113.63708496093749, 109.60487874348958, 64.50270589192708, 92.67580159505209, + 109.92156982421876, 109.70719401041667, 82.3917236328125 + ], + [ + 37.34417724609375, 30.73883056640625, 31.25270589192708, 41.400126139322914, 0.0, + 21.937276204427082, 34.271504720052086, 37.11167399088542, 28.91365559895833, + 30.468811035156243, 28.37969970703125, 28.515584309895836, 33.150797526041664, + 30.461934407552082, 66.976806640625, 50.86492919921875, 64.86112467447917, + 49.913899739583336, 62.1273193359375, 43.193868001302086, 63.83300781249999, + 79.74318440755208, 76.87443033854167, 38.006103515625, 60.5753173828125, + 76.53137207031249, 76.65627034505209, 51.088521321614586 + ], + [ + 30.532307942708332, 26.036661783854168, 28.188110351562496, 34.6890869140625, + 21.937276204427082, 0.0, 28.764200846354168, 30.2337646484375, 27.031555175781246, + 26.693929036458336, 24.63350423177083, 26.357076009114586, 28.437113444010418, + 28.965372721354164, 73.21091715494792, 55.866658528645836, 70.59844970703125, + 55.54791259765625, 67.85219319661459, 47.50089518229167, 69.76588948567708, + 86.60363769531249, 83.16042073567708, 41.08652750651042, 66.18214925130209, + 83.06052652994792, 83.04182942708333, 57.47448730468749 + ], + [ + 29.8131103515625, 34.095784505208336, 26.878702799479168, 28.388712565104164, + 34.271504720052086, 28.764200846354168, 0.0, 29.571248372395832, 30.256286621093746, + 25.574584960937504, 29.092000325520832, 27.233907063802086, 28.173156738281246, + 34.67842610677083, 86.42047119140624, 68.83040364583333, 83.28529866536458, + 69.34999593098958, 80.67213948567709, 60.466471354166664, 83.24228922526041, + 100.34029134114583, 96.44879150390625, 53.04644775390626, 79.38299560546875, + 96.93438720703124, 96.67309570312501, 70.02742513020833 + ], + [ + 20.894042968749996, 38.664510091145836, 28.532389322916664, 25.960327148437496, + 37.11167399088542, 30.2337646484375, 29.571248372395832, 0.0, 38.26361083984375, + 32.66365559895833, 34.758870442708336, 35.38991292317708, 26.884745279947918, + 41.36539713541667, 93.33872477213542, 75.01021321614583, 89.82240804036459, + 76.58184814453125, 87.78904215494791, 67.38883463541666, 90.04648844401041, + 106.75097656250001, 102.76031494140625, 59.618794759114586, 86.3109334309896, + 103.1830851236979, 102.72668457031249, 75.81368001302084 + ], + [ + 37.64971923828125, 30.18752034505208, 33.407246907552086, 41.058451334635414, + 28.91365559895833, 27.031555175781246, 30.256286621093746, 38.26361083984375, 0.0, + 31.55413818359375, 25.189554850260418, 30.677408854166668, 33.0687255859375, + 29.777689615885414, 66.64803059895834, 50.97430419921875, 63.736083984375, + 50.80208333333333, 61.21244303385417, 44.24407958984376, 63.15014648437499, + 79.63641357421875, 75.85872395833333, 38.814860026041664, 60.17395019531249, + 76.20454915364584, 76.35569254557292, 51.81020100911458 + ], + [ + 33.197509765625, 36.709065755208336, 26.71341959635416, 33.2744140625, 30.468811035156243, + 26.693929036458336, 25.574584960937504, 32.66365559895833, 31.55413818359375, 0.0, + 28.311848958333336, 25.055562337239582, 26.606302897135414, 33.49373372395833, + 82.74965413411459, 64.00089518229167, 80.10471598307292, 64.50209554036459, + 77.38690185546875, 56.4730224609375, 79.39316813151042, 96.40132649739583, + 93.00811767578125, 47.72117106119792, 75.77659098307292, 93.09747314453125, + 92.86686197916667, 67.31437174479167 + ], + [ + 34.327433268229164, 27.768839518229164, 27.917236328124996, 36.7115478515625, + 28.37969970703125, 24.63350423177083, 29.092000325520832, 34.758870442708336, + 25.189554850260418, 28.311848958333336, 0.0, 26.69549560546875, 28.46771240234375, + 28.8642578125, 72.75526936848958, 56.167561848958336, 70.00978597005209, + 55.35752360026042, 67.92665608723958, 48.437906901041664, 69.43280029296875, + 86.5869140625, 82.94252522786458, 40.97186279296875, 65.72406005859375, 83.21877034505208, + 83.20113118489584, 58.34590657552083 + ], + [ + 33.532328287760414, 32.861673990885414, 29.49338785807291, 34.781840006510414, + 28.515584309895836, 26.357076009114586, 27.233907063802086, 35.38991292317708, + 30.677408854166668, 25.055562337239582, 26.69549560546875, 0.0, 29.588338216145836, + 29.79640706380209, 77.47611490885417, 59.92242431640625, 74.89530436197917, + 59.7857666015625, 71.78055826822917, 52.50506591796874, 74.09647623697916, + 91.03615315755208, 87.47607421875, 43.77042643229167, 70.0340576171875, 87.8284912109375, + 87.84840901692708, 61.46205647786458 + ], + [ + 30.786356608072918, 35.304545084635414, 16.283060709635414, 28.344380696614586, + 33.150797526041664, 28.437113444010418, 28.173156738281246, 26.884745279947918, + 33.0687255859375, 26.606302897135414, 28.46771240234375, 29.588338216145836, 0.0, + 35.82533772786458, 88.80497233072917, 69.88165283203125, 85.31050618489584, + 70.56131998697917, 83.44523111979167, 62.32277425130208, 85.65421549479166, + 102.72914632161459, 98.99983723958333, 54.417154947916664, 81.94352213541667, + 99.26009114583334, 98.92653401692709, 72.5925089518229 + ], + [ + 40.900187174479164, 30.878255208333332, 37.08638509114583, 44.106852213541664, + 30.461934407552082, 28.965372721354164, 34.67842610677083, 41.36539713541667, + 29.777689615885414, 33.49373372395833, 28.8642578125, 29.79640706380209, + 35.82533772786458, 0.0, 64.72629801432292, 48.81258138020833, 62.23533121744791, + 49.16347249348958, 59.66969807942708, 43.285929361979164, 61.05780029296875, + 78.01949055989583, 74.07790120442709, 37.558085123697914, 56.826395670572914, + 74.82781982421875, 74.77937825520833, 50.34672037760416 + ], + [ + 92.80275472005208, 65.93406168619791, 89.79176839192708, 99.69036865234376, + 66.976806640625, 73.21091715494792, 86.42047119140624, 93.33872477213542, + 66.64803059895834, 82.74965413411459, 72.75526936848958, 77.47611490885417, + 88.80497233072917, 64.72629801432292, 0.0, 29.88079833984375, 19.371012369791668, + 32.526570638020836, 27.967936197916668, 39.145039876302086, 25.34110514322917, + 27.669576009114582, 26.949015299479168, 42.791178385416664, 29.933959960937504, + 27.436889648437496, 28.158182779947918, 36.21413167317708 + ], + [ + 74.6177978515625, 51.92789713541667, 71.29158528645834, 81.03556315104167, + 50.86492919921875, 55.866658528645836, 68.83040364583333, 75.01021321614583, + 50.97430419921875, 64.00089518229167, 56.167561848958336, 59.92242431640625, + 69.88165283203125, 48.81258138020833, 29.88079833984375, 0.0, 30.330017089843746, + 30.25583902994792, 32.95257568359374, 33.6961669921875, 31.803853352864586, + 39.319010416666664, 39.061665852864586, 31.14621988932292, 34.26861572265625, + 38.65736897786458, 37.9774169921875, 35.38305664062499 + ], + [ + 89.49163818359374, 62.621236165364586, 86.46270751953125, 96.35536702473956, + 64.86112467447917, 70.59844970703125, 83.28529866536458, 89.82240804036459, + 63.736083984375, 80.10471598307292, 70.00978597005209, 74.89530436197917, + 85.31050618489584, 62.23533121744791, 19.371012369791668, 30.330017089843746, 0.0, + 32.4351806640625, 27.574015299479164, 37.98659261067708, 27.552693684895836, + 30.782165527343746, 27.74886067708333, 43.645711263020836, 30.135213216145836, + 29.829020182291668, 30.043924967447914, 35.57716878255208 + ], + [ + 75.70969645182291, 52.37416585286458, 71.53261311848959, 82.43463134765625, + 49.913899739583336, 55.54791259765625, 69.34999593098958, 76.58184814453125, + 50.80208333333333, 64.50209554036459, 55.35752360026042, 59.7857666015625, + 70.56131998697917, 49.16347249348958, 32.526570638020836, 30.25583902994792, + 32.4351806640625, 0.0, 32.667032877604164, 27.09629313151042, 28.392008463541668, + 37.59234619140625, 38.982991536458336, 34.58158365885416, 29.015543619791664, + 36.62748209635417, 39.62811279296875, 28.677958170572918 + ], + [ + 87.09710693359375, 60.159810384114586, 84.38425699869792, 93.97524007161458, + 62.1273193359375, 67.85219319661459, 80.67213948567709, 87.78904215494791, + 61.21244303385417, 77.38690185546875, 67.92665608723958, 71.78055826822917, + 83.44523111979167, 59.66969807942708, 27.967936197916668, 32.95257568359374, + 27.574015299479164, 32.667032877604164, 0.0, 32.43125406901042, 24.892496744791668, + 32.51450602213542, 28.850789388020832, 40.9671630859375, 28.319742838541668, + 31.867106119791664, 34.27793375651042, 33.681986490885414 + ], + [ + 66.18766276041667, 43.314534505208336, 62.889567057291664, 72.09049479166666, + 43.193868001302086, 47.50089518229167, 60.466471354166664, 67.38883463541666, + 44.24407958984376, 56.4730224609375, 48.437906901041664, 52.50506591796874, + 62.32277425130208, 43.285929361979164, 39.145039876302086, 33.6961669921875, + 37.98659261067708, 27.09629313151042, 32.43125406901042, 0.0, 34.557840983072914, + 47.13924153645833, 45.090596516927086, 34.050028483072914, 35.29510498046876, + 45.09938557942708, 46.952229817708336, 33.4302978515625 + ], + [ + 89.31703694661459, 62.678202311197914, 86.61810302734375, 96.44468180338541, + 63.83300781249999, 69.76588948567708, 83.24228922526041, 90.04648844401041, + 63.15014648437499, 79.39316813151042, 69.43280029296875, 74.09647623697916, + 85.65421549479166, 61.05780029296875, 25.34110514322917, 31.803853352864586, + 27.552693684895836, 28.392008463541668, 24.892496744791668, 34.557840983072914, 0.0, + 29.156880696614582, 27.03580729166667, 42.519816080729164, 23.590250651041668, + 28.352783203125004, 26.97324625651042, 33.587626139322914 + ], + [ + 106.05940755208334, 78.34749348958333, 103.70756022135417, 113.63708496093749, + 79.74318440755208, 86.60363769531249, 100.34029134114583, 106.75097656250001, + 79.63641357421875, 96.40132649739583, 86.5869140625, 91.03615315755208, + 102.72914632161459, 78.01949055989583, 27.669576009114582, 39.319010416666664, + 30.782165527343746, 37.59234619140625, 32.51450602213542, 47.13924153645833, + 29.156880696614582, 0.0, 26.226175944010418, 55.47857666015624, 33.460062662760414, + 20.538146972656254, 23.900431315104168, 39.16625976562499 + ], + [ + 102.22385660807292, 74.26320393880208, 100.00054931640625, 109.60487874348958, + 76.87443033854167, 83.16042073567708, 96.44879150390625, 102.76031494140625, + 75.85872395833333, 93.00811767578125, 82.94252522786458, 87.47607421875, + 98.99983723958333, 74.07790120442709, 26.949015299479168, 39.061665852864586, + 27.74886067708333, 38.982991536458336, 28.850789388020832, 45.090596516927086, + 27.03580729166667, 26.226175944010418, 0.0, 53.980550130208336, 25.619710286458336, + 25.190226236979168, 26.232808430989582, 36.867574055989586 + ], + [ + 58.711527506510414, 41.419942220052086, 54.94435628255208, 64.50270589192708, + 38.006103515625, 41.08652750651042, 53.04644775390626, 59.618794759114586, + 38.814860026041664, 47.72117106119792, 40.97186279296875, 43.77042643229167, + 54.417154947916664, 37.558085123697914, 42.791178385416664, 31.14621988932292, + 43.645711263020836, 34.58158365885416, 40.9671630859375, 34.050028483072914, + 42.519816080729164, 55.47857666015624, 53.980550130208336, 0.0, 41.041910807291664, + 53.31644694010417, 54.442118326822914, 38.094136555989586 + ], + [ + 85.63018798828125, 59.03456624348958, 82.74163818359374, 92.67580159505209, + 60.5753173828125, 66.18214925130209, 79.38299560546875, 86.3109334309896, + 60.17395019531249, 75.77659098307292, 65.72406005859375, 70.0340576171875, + 81.94352213541667, 56.826395670572914, 29.933959960937504, 34.26861572265625, + 30.135213216145836, 29.015543619791664, 28.319742838541668, 35.29510498046876, + 23.590250651041668, 33.460062662760414, 25.619710286458336, 41.041910807291664, 0.0, + 32.79504394531249, 33.18410237630208, 27.11846923828125 + ], + [ + 102.55999755859374, 74.66033935546875, 100.18544514973958, 109.92156982421876, + 76.53137207031249, 83.06052652994792, 96.93438720703124, 103.1830851236979, + 76.20454915364584, 93.09747314453125, 83.21877034505208, 87.8284912109375, + 99.26009114583334, 74.82781982421875, 27.436889648437496, 38.65736897786458, + 29.829020182291668, 36.62748209635417, 31.867106119791664, 45.09938557942708, + 28.352783203125004, 20.538146972656254, 25.190226236979168, 53.31644694010417, + 32.79504394531249, 0.0, 22.246846516927086, 37.75433349609375 + ], + [ + 102.19559733072916, 75.09415690104167, 99.9605712890625, 109.70719401041667, + 76.65627034505209, 83.04182942708333, 96.67309570312501, 102.72668457031249, + 76.35569254557292, 92.86686197916667, 83.20113118489584, 87.84840901692708, + 98.92653401692709, 74.77937825520833, 28.158182779947918, 37.9774169921875, + 30.043924967447914, 39.62811279296875, 34.27793375651042, 46.952229817708336, + 26.97324625651042, 23.900431315104168, 26.232808430989582, 54.442118326822914, + 33.18410237630208, 22.246846516927086, 0.0, 40.3746337890625 + ], + [ + 74.99434407552084, 51.227498372395836, 73.17451985677083, 82.3917236328125, + 51.088521321614586, 57.47448730468749, 70.02742513020833, 75.81368001302084, + 51.81020100911458, 67.31437174479167, 58.34590657552083, 61.46205647786458, + 72.5925089518229, 50.34672037760416, 36.21413167317708, 35.38305664062499, + 35.57716878255208, 28.677958170572918, 33.681986490885414, 33.4302978515625, + 33.587626139322914, 39.16625976562499, 36.867574055989586, 38.094136555989586, + 27.11846923828125, 37.75433349609375, 40.3746337890625, 0.0 + ] + ], + "units": "SYS_CNT ticks", + "source": { + "name": "scalar_128MiB_cube_concurrent", + "matrices": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_cube_concurrent.npz", + "sha256": "68b3a397f17aa7847f883a8fb25be5e5fbb8c23a7c4ad19e127280126a64e2ee", + "bytes": 3023127 + }, + "statistics": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_cube_concurrent.json", + "sha256": "9f187cb6873132acf305b75d48b187ac6627f24fb91b9693276a8debef6b76cb", + "bytes": 50465 + } + }, + "pair_statistics": { + "all_unique_core_pairs": { + "count": 378, + "mean": 54.04791577320671, + "std": 24.78088043692896, + "quantiles": { + "0.0": 16.283060709635414, + "0.01": 21.69733256022135, + "0.05": 26.19774881998698, + "0.25": 31.61656697591146, + "0.5": 47.320068359375, + "0.75": 74.96958414713542, + "0.95": 99.3246327718099, + "0.99": 107.40737406412767, + "1.0": 113.63708496093749 + } + }, + "within_decoded_die": { + "count": 182, + "mean": 32.369188804766196, + "std": 6.378932704782334, + "quantiles": { + "0.0": 16.283060709635414, + "0.01": 20.316391398111982, + "0.05": 24.751519775390626, + "0.25": 28.17689514160156, + "0.5": 30.832305908203125, + "0.75": 35.53035481770833, + "0.95": 43.60298461914062, + "0.99": 54.0682480875651, + "1.0": 55.47857666015624 + } + }, + "between_decoded_die": { + "count": 196, + "mean": 74.17816224390147, + "std": 17.46170425957447, + "quantiles": { + "0.0": 37.558085123697914, + "0.01": 38.77442220052083, + "0.05": 44.125666300455734, + "0.25": 61.17378234863281, + "0.5": 74.71985880533853, + "0.75": 86.59109497070312, + "0.95": 102.72730000813802, + "0.99": 109.71791280110678, + "1.0": 113.63708496093749 + } + } + }, + "dieGroups": [ + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B" + ] + }, + { + "condition": "scalar_128MiB_vector_isolated", + "metric": "distance", + "coreids": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, + 45, 46, 47, 48, 49, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 96, 97, 98, 99, 100, 101 + ], + "matrix": [ + [ + 0.0, 10.660400390625, 16.78631591796875, 16.2188720703125, 14.609659830729166, + 15.288736979166666, 13.865091959635416, 16.432210286458336, 18.86505126953125, + 20.33135986328125, 16.555216471354168, 16.902445475260414, 18.801005045572918, + 18.338948567708336, 18.161458333333332, 18.029215494791664, 17.43585205078125, + 15.934326171874998, 21.419881184895832, 20.605834960937504, 19.556254069010418, + 17.234781901041668, 22.228006998697914, 21.51043701171875, 21.246114095052082, + 21.053670247395836, 20.784505208333336, 19.583353678385418, 94.44472249348958, + 95.28102620442708, 94.16617838541667, 94.30828857421875, 95.12670898437501, + 94.36861165364583, 94.56561279296876, 94.11405436197916, 94.90852864583333, + 94.75211588541667, 94.24149576822917, 94.1085205078125, 93.74505615234374, + 93.78169759114583, 93.38283284505208, 92.34895833333333, 93.88944498697917, + 93.94034830729166, 93.16851806640625, 93.04101562500001, 93.77386474609376, + 93.69598388671875, 93.19500732421876, 93.06608072916666, 93.00933837890625, + 93.01247151692708, 92.75638834635416, 93.36850992838541 + ], + [ + 10.660400390625, 0.0, 16.61785888671875, 18.437174479166668, 14.471801757812498, + 12.950724283854168, 13.38897705078125, 14.978352864583336, 19.92462158203125, + 18.416524251302082, 16.034464518229168, 16.565572102864586, 17.166239420572918, + 18.903564453125, 18.181437174479168, 16.791219075520836, 15.879862467447914, + 15.563761393229168, 19.269490559895832, 19.714599609374996, 17.456807454427082, + 16.742024739583332, 21.795308430989586, 20.01434326171875, 21.42645263671875, + 19.749837239583332, 20.335449218749996, 18.74859619140625, 94.86838785807292, + 95.75356038411458, 94.584716796875, 94.73227945963541, 95.52347819010417, + 94.77258300781249, 94.93585205078125, 94.59973144531253, 95.3734130859375, + 95.18953450520834, 94.71634928385417, 94.55558268229167, 94.25815836588542, + 94.1888427734375, 93.82082112630208, 92.7725830078125, 94.39428710937499, 94.41259765625, + 93.63136800130209, 93.55399576822917, 94.26255289713542, 94.20831298828125, + 93.64996337890625, 93.55977376302083, 93.47983805338544, 93.40834554036458, + 93.2069091796875, 93.83998616536459 + ], + [ + 16.78631591796875, 16.61785888671875, 0.0, 18.354878743489582, 18.47918701171875, + 17.492004394531254, 17.3297119140625, 13.08819580078125, 25.8746337890625, + 24.989217122395832, 19.30072021484375, 18.746826171875, 16.895304361979168, + 18.001647949218754, 21.639790852864582, 23.932556152343746, 18.189208984374996, + 17.829121907552086, 26.399271647135414, 25.352600097656246, 20.075602213541668, + 17.844217936197918, 20.01318359375, 20.5010986328125, 25.257934570312504, + 25.979227701822918, 21.15093994140625, 20.975301106770836, 94.79313151041667, + 95.69958496093751, 94.64837646484375, 94.85892740885417, 95.36285400390624, + 94.65948486328125, 94.98148600260416, 94.64699300130208, 95.16864013671875, + 94.91200764973959, 94.55690511067708, 94.41737874348958, 94.1212158203125, + 94.06272379557292, 93.76053873697917, 92.80942789713542, 94.20086669921875, + 94.18821207682292, 93.50240071614583, 93.42392985026042, 93.97147623697917, + 93.90604654947916, 93.6387939453125, 93.44944254557292, 93.54781087239583, + 93.554443359375, 93.08534749348958, 93.66516113281251 + ], + [ + 16.2188720703125, 18.437174479166668, 18.354878743489582, 0.0, 18.4329833984375, + 23.232421875, 13.592671712239586, 21.21630859375, 23.12396240234375, 29.066019694010414, + 18.736328125, 18.894063313802082, 20.17364501953125, 14.911661783854168, + 24.650594075520832, 23.75935872395833, 19.972839355468746, 19.474405924479168, + 29.172648111979164, 25.890624999999996, 24.296081542968746, 22.316569010416668, + 20.299784342447914, 24.76861572265625, 23.686299641927082, 26.085164388020832, + 24.2203369140625, 22.833964029947918, 94.77158610026044, 95.57720947265626, + 94.69384765625, 94.90948486328125, 95.22155761718751, 94.54581705729167, + 94.89495849609375, 94.53670247395833, 94.91931152343751, 94.7156982421875, + 94.35697428385416, 94.22635904947917, 93.93019612630208, 93.8572998046875, + 93.60809326171875, 92.66060384114584, 93.89188639322916, 93.91662597656249, + 93.35797119140625, 93.25590006510417, 93.75661214192708, 93.63637288411458, + 93.46006266276042, 93.36629231770833, 93.43857828776042, 93.47458902994792, + 92.864013671875, 93.39735921223959 + ], + [ + 14.609659830729166, 14.471801757812498, 18.47918701171875, 18.4329833984375, 0.0, + 15.3260498046875, 14.480000813802082, 18.374877929687504, 16.00677490234375, + 18.78057861328125, 16.196248372395832, 14.127095540364584, 18.96710205078125, + 18.268229166666664, 16.980387369791668, 17.552408854166668, 19.037007649739582, + 18.921590169270832, 20.83793131510417, 18.786092122395832, 20.65777587890625, + 18.451904296875, 21.650492350260418, 23.67596435546875, 18.761250813802082, + 21.0076904296875, 20.833089192708332, 19.553487141927082, 94.78835042317709, + 95.61765543619791, 94.47705078125001, 94.62795003255208, 95.41271972656251, + 94.63069661458333, 94.83034261067709, 94.47806803385417, 95.27803548177083, + 95.07149251302083, 94.57303873697917, 94.43937174479167, 94.13795979817708, + 94.08565266927084, 93.67287190755208, 92.64762369791666, 94.23482259114583, + 94.30712890625001, 93.48862711588542, 93.39550781249999, 94.12758382161458, + 94.04347737630208, 93.54335530598958, 93.39815266927084, 93.33872477213541, + 93.35935465494791, 93.14261881510419, 93.71303304036458 + ], + [ + 15.288736979166666, 12.950724283854168, 17.492004394531254, 23.232421875, + 15.3260498046875, 0.0, 18.27105712890625, 14.816731770833334, 18.699239095052082, + 15.822489420572918, 16.511881510416668, 16.495463053385414, 17.683329264322914, + 21.661946614583336, 19.06787109375, 18.544392903645836, 17.498067220052086, + 18.015462239583336, 16.336832682291664, 17.562703450520836, 18.101338704427086, + 17.351643880208336, 21.293233235677082, 21.127827962239586, 22.029195149739582, + 21.001627604166664, 19.320638020833336, 20.55194091796875, 94.87738037109375, + 95.70078531901042, 94.52144368489583, 94.64975992838542, 95.51383463541667, + 94.78470865885416, 94.88718668619792, 94.49519856770831, 95.38297526041667, + 95.19169108072917, 94.6611328125, 94.54182942708334, 94.20652262369792, 94.19160970052083, + 93.72833251953126, 92.77242024739583, 94.3226318359375, 94.38671875000001, + 93.60085042317709, 93.44962565104166, 94.21506754557292, 94.22308349609374, + 93.59678141276042, 93.42622884114583, 93.43410237630208, 93.39552815755209, + 93.17846679687501, 93.80499267578125 + ], + [ + 13.865091959635416, 13.38897705078125, 17.3297119140625, 13.592671712239586, + 14.480000813802082, 18.27105712890625, 0.0, 16.237691243489586, 21.075520833333332, + 23.360636393229168, 15.527404785156252, 15.99617513020833, 17.383341471354164, + 15.21820068359375, 19.328470865885418, 17.740458170572918, 16.274251302083336, + 15.158711751302082, 23.368591308593754, 21.736551920572918, 18.845621744791668, + 17.64361572265625, 19.869913736979168, 21.38134765625, 20.744913736979164, + 20.99957275390625, 20.796000162760414, 18.9688720703125, 94.87418619791666, + 95.74727376302083, 94.65565999348958, 94.83955891927084, 95.47784423828124, + 94.75217692057291, 95.02551269531249, 94.63393147786458, 95.26922607421875, + 95.08465576171876, 94.70688883463542, 94.50994873046875, 94.2401123046875, + 94.19268798828126, 93.8880615234375, 92.84474690755206, 94.31760660807291, + 94.32928466796876, 93.59098307291667, 93.55963134765624, 94.1297607421875, + 94.08520507812499, 93.69555664062499, 93.58880615234375, 93.55900065104166, + 93.57666015625, 93.21632893880208, 93.80745442708333 + ], + [ + 16.432210286458336, 14.978352864583336, 13.08819580078125, 21.21630859375, + 18.374877929687504, 14.816731770833334, 16.237691243489586, 0.0, 24.660746256510418, + 21.091206868489582, 18.167683919270836, 18.84771728515625, 18.575052897135418, + 19.504313151041668, 19.605305989583336, 20.04150390625, 16.906026204427086, + 16.4783935546875, 22.765909830729168, 22.38358561197917, 16.543924967447918, + 14.885172526041666, 20.480041503906246, 18.371968587239586, 23.857482910156254, + 22.419352213541664, 20.229573567708332, 20.065531412760418, 94.76357014973959, + 95.58119710286459, 94.5611572265625, 94.67429606119792, 95.35603841145834, + 94.68172200520833, 94.91021728515625, 94.49344889322917, 95.16971842447916, + 94.96354166666669, 94.53104654947917, 94.40869140625, 94.05885823567709, 94.03369140625, + 93.67417399088542, 92.66516113281249, 94.15523274739584, 94.1231689453125, + 93.45188395182291, 93.28792317708333, 93.96962483723958, 93.93206787109374, + 93.50095621744791, 93.42574055989584, 93.38051350911459, 93.40757242838541, + 93.05338541666667, 93.64621988932291 + ], + [ + 18.86505126953125, 19.92462158203125, 25.8746337890625, 23.12396240234375, + 16.00677490234375, 18.699239095052082, 21.075520833333332, 24.660746256510418, 0.0, + 17.240315755208332, 17.56292724609375, 16.272257486979164, 25.154744466145832, + 24.019266764322918, 20.61676025390625, 19.83343505859375, 22.970703125, 23.02252197265625, + 19.80364990234375, 17.675150553385414, 23.853841145833332, 22.281392415364582, + 25.413777669270836, 27.4002685546875, 20.160481770833332, 22.157816569010418, + 23.221211751302086, 22.40653483072917, 94.47855631510417, 95.35856119791667, + 94.07423909505206, 94.27559407552083, 95.18646240234375, 94.45542399088542, + 94.50577799479166, 94.13417561848959, 95.09210205078126, 94.96913655598958, + 94.37375895182291, 94.20233154296874, 93.91031901041667, 93.85544840494791, + 93.42403157552086, 92.39711507161459, 94.01332600911458, 94.09206136067709, + 93.24308268229167, 93.14739990234375, 93.99430338541667, 93.90848795572916, + 93.2200927734375, 93.10854085286459, 93.03666178385416, 93.00728352864583, + 92.86875406901042, 93.55135091145836 + ], + [ + 20.33135986328125, 18.416524251302082, 24.989217122395832, 29.066019694010414, + 18.78057861328125, 15.822489420572918, 23.360636393229168, 21.091206868489582, + 17.240315755208332, 0.0, 20.724589029947914, 19.221842447916668, 23.149169921874996, + 28.304951985677086, 19.93206787109375, 17.444681803385414, 19.9749755859375, + 21.972310384114582, 16.225362141927082, 18.346089680989582, 17.81494140625, + 18.335835774739586, 26.1182861328125, 23.308024088541668, 21.655883789062496, + 20.456197102864582, 20.195170084635414, 22.3101806640625, 94.6219482421875, + 95.47041829427083, 94.18194580078124, 94.38875325520833, 95.31960042317709, + 94.60801188151042, 94.66845703125001, 94.32586669921875, 95.21437581380209, + 95.10764567057292, 94.50657145182294, 94.42645263671875, 94.0771484375, 93.96596272786458, + 93.56172688802084, 92.49281819661459, 94.18174235026042, 94.22304280598958, + 93.3829345703125, 93.26153564453125, 94.1060791015625, 94.037109375, 93.38525390625, + 93.25913492838541, 93.16357421875, 93.12186686197916, 93.04962158203126, 93.62048339843751 + ], + [ + 16.555216471354168, 16.034464518229168, 19.30072021484375, 18.736328125, + 16.196248372395832, 16.511881510416668, 15.527404785156252, 18.167683919270836, + 17.56292724609375, 20.724589029947914, 0.0, 10.572448730468752, 18.645121256510414, + 15.210408528645834, 15.569986979166666, 15.716796875, 16.247701009114586, + 14.883219401041666, 18.236328125, 15.052368164062498, 17.936421712239586, + 15.709676106770832, 16.70184326171875, 20.77154541015625, 16.343851725260418, + 17.368082682291664, 17.906819661458332, 16.419087727864586, 94.33367919921875, + 95.16473388671874, 94.02555338541667, 94.22674560546875, 94.9737548828125, + 94.20796712239584, 94.46730550130209, 94.05293782552083, 94.83247884114581, + 94.63468424479167, 94.15388997395834, 93.97819010416666, 93.74318440755209, + 93.66528320312499, 93.25136311848959, 92.29597981770833, 93.8187255859375, 93.8427734375, + 93.11741129557291, 92.99580891927083, 93.66257731119792, 93.63714599609374, + 93.13214111328125, 93.03816731770831, 93.05206298828126, 93.03774007161458, + 92.71858723958334, 93.30653889973959 + ], + [ + 16.902445475260414, 16.565572102864586, 18.746826171875, 18.894063313802082, + 14.127095540364584, 16.495463053385414, 15.99617513020833, 18.84771728515625, + 16.272257486979164, 19.221842447916668, 10.572448730468752, 0.0, 16.145426432291664, + 16.943990071614582, 16.36724853515625, 15.545267740885414, 15.462361653645834, + 16.213358561197914, 16.939432779947918, 14.933573404947918, 17.308919270833332, + 15.816874186197918, 16.5914306640625, 20.373819986979168, 15.280965169270834, + 18.269795735677082, 16.038960774739582, 16.411702473958336, 94.52482096354166, + 95.43229166666667, 94.29201253255208, 94.48579915364583, 95.22751871744792, + 94.46449788411459, 94.69828287760419, 94.22959391276041, 95.03021240234375, + 94.87424723307292, 94.33929443359375, 94.24200439453125, 93.98905436197916, + 93.93267822265626, 93.49409993489583, 92.54933675130209, 94.07716878255208, + 94.10337320963542, 93.31722005208334, 93.23284912109375, 93.88179524739584, + 93.86796061197916, 93.39147949218749, 93.29290771484375, 93.25004069010416, + 93.2972412109375, 92.89211018880208, 93.56457519531249 + ], + [ + 18.801005045572918, 17.166239420572918, 16.895304361979168, 20.17364501953125, + 18.96710205078125, 17.683329264322914, 17.383341471354164, 18.575052897135418, + 25.154744466145832, 23.149169921874996, 18.645121256510414, 16.145426432291664, 0.0, + 16.77996826171875, 22.53338623046875, 20.93963623046875, 13.147013346354168, + 15.410013834635416, 22.00372314453125, 24.283345540364582, 17.824625651041664, + 17.404439290364586, 17.391764322916668, 17.027140299479164, 22.49495442708333, + 23.225931803385414, 15.466532389322916, 17.511922200520832, 93.99003092447916, + 94.85750325520833, 93.72930908203125, 93.95418294270833, 94.55006917317708, + 93.77239990234376, 94.2244873046875, 93.77968343098959, 94.31679280598958, + 94.13531494140626, 93.65118408203125, 93.61647542317709, 93.32222493489584, + 93.25087483723958, 92.94474283854167, 91.94309488932291, 93.37497965494792, + 93.40098063151042, 92.69954427083333, 92.56235758463542, 93.112060546875, + 93.0968017578125, 92.93733723958334, 92.79665120442708, 92.85668945312501, + 92.87923177083334, 92.26023356119792, 92.85367838541667 + ], + [ + 18.338948567708336, 18.903564453125, 18.001647949218754, 14.911661783854168, + 18.268229166666664, 21.661946614583336, 15.21820068359375, 19.504313151041668, + 24.019266764322918, 28.304951985677086, 15.210408528645834, 16.943990071614582, + 16.77996826171875, 0.0, 21.046671549479168, 22.347900390625, 17.36187744140625, + 15.375000000000002, 27.376302083333332, 23.922403971354164, 22.01312255859375, + 19.098958333333336, 15.39536539713542, 20.546407063802086, 21.69899495442708, + 23.2156982421875, 20.513305664062496, 17.834574381510418, 94.18654378255208, + 95.09438069661456, 94.10567220052083, 94.31557210286459, 94.82137044270834, + 94.06591796875, 94.51039632161458, 94.06901041666667, 94.57137044270833, + 94.37089029947919, 94.000244140625, 93.88240559895833, 93.55067952473959, + 93.52705891927083, 93.22532145182292, 92.25516764322916, 93.63956705729166, + 93.62186686197917, 92.89605712890624, 92.84077962239584, 93.35569254557292, + 93.34438069661458, 93.17124430338544, 93.04073079427083, 93.16623942057292, + 93.14577229817709, 92.49552408854167, 93.08237711588542 + ], + [ + 18.161458333333332, 18.181437174479168, 21.639790852864582, 24.650594075520832, + 16.980387369791668, 19.06787109375, 19.328470865885418, 19.605305989583336, + 20.61676025390625, 19.93206787109375, 15.569986979166666, 16.36724853515625, + 22.53338623046875, 21.046671549479168, 0.0, 13.129760742187502, 19.286519368489586, + 18.1864013671875, 18.383138020833332, 18.670898437500004, 17.576070149739586, + 13.773396809895834, 23.392476399739586, 21.698954264322914, 16.89788818359375, + 16.623575846354164, 18.61572265625, 16.48248291015625, 94.59653727213542, + 95.46160888671875, 94.34566243489583, 94.51621500651041, 95.24173990885416, + 94.54276529947917, 94.79123942057292, 94.33780924479167, 95.09541829427083, 94.982421875, + 94.46492513020833, 94.31852213541667, 94.00128173828126, 93.99658203125, + 93.63149007161459, 92.56136067708331, 94.15450032552083, 94.1595458984375, + 93.42360432942708, 93.26098632812499, 94.01092529296875, 93.97393798828126, + 93.47247314453125, 93.31376139322917, 93.36985270182291, 93.36159261067709, + 93.01802571614583, 93.65464274088542 + ], + [ + 18.029215494791664, 16.791219075520836, 23.932556152343746, 23.75935872395833, + 17.552408854166668, 18.544392903645836, 17.740458170572918, 20.04150390625, + 19.83343505859375, 17.444681803385414, 15.716796875, 15.545267740885414, + 20.93963623046875, 22.347900390625, 13.129760742187502, 0.0, 15.684468587239584, + 16.488932291666668, 15.282552083333332, 16.357666015625, 13.842997233072916, + 15.0001220703125, 22.195251464843754, 20.123514811197918, 15.810892740885416, + 14.515828450520832, 16.813720703125, 16.929707845052082, 94.42730712890626, + 95.31195068359374, 94.14534505208334, 94.25103759765624, 95.10982259114583, + 94.29451497395833, 94.53538004557292, 94.18216959635417, 94.94291178385416, + 94.74027506510416, 94.26875813802083, 94.15047200520833, 93.80230712890626, + 93.79622395833333, 93.44203694661458, 92.39742024739584, 93.96492513020833, + 94.0174560546875, 93.22662353515626, 93.114990234375, 93.83888753255208, + 93.76352945963542, 93.28489176432292, 93.17643229166667, 93.12123616536458, + 93.08266194661458, 92.8416748046875, 93.45611572265625 + ], + [ + 17.43585205078125, 15.879862467447914, 18.189208984374996, 19.972839355468746, + 19.037007649739582, 17.498067220052086, 16.274251302083336, 16.906026204427086, + 22.970703125, 19.9749755859375, 16.247701009114586, 15.462361653645834, + 13.147013346354168, 17.36187744140625, 19.286519368489586, 15.684468587239584, 0.0, + 12.05828857421875, 19.761861165364586, 20.970560709635414, 12.263346354166666, + 13.897440592447918, 16.717244466145836, 14.407674153645834, 19.326253255208332, + 18.004862467447914, 14.69390869140625, 15.784505208333332, 93.77974446614583, + 94.66442871093749, 93.57517496744792, 93.76700846354166, 94.37001546223956, + 93.73557535807292, 93.95373535156251, 93.62396240234375, 94.22963460286459, + 94.05885823567708, 93.63828531901042, 93.45375569661458, 93.17451985677084, + 93.1231892903646, 92.80029296875, 91.74110921223959, 93.25229899088541, 93.24839274088541, + 92.56416829427083, 92.42738850911458, 93.06201171875, 93.043212890625, 92.72696940104167, + 92.56654866536459, 92.59981282552083, 92.57153320312499, 92.17429606119791, + 92.74507649739583 + ], + [ + 15.934326171874998, 15.563761393229168, 17.829121907552086, 19.474405924479168, + 18.921590169270832, 18.015462239583336, 15.158711751302082, 16.4783935546875, + 23.02252197265625, 21.972310384114582, 14.883219401041666, 16.213358561197914, + 15.410013834635416, 15.375000000000002, 18.1864013671875, 16.488932291666668, + 12.05828857421875, 0.0, 20.841064453125, 20.467610677083332, 14.67864990234375, + 13.657877604166666, 17.713846842447914, 15.561625162760413, 19.65350341796875, + 17.959187825520832, 17.052693684895832, 14.763732910156252, 93.41387939453124, + 94.23350016276042, 93.1575927734375, 93.34893798828125, 94.01871744791667, + 93.25911458333334, 93.55267333984375, 93.22025553385417, 93.78479003906251, + 93.62223307291669, 93.21114095052084, 93.08955891927084, 92.79103597005208, + 92.72025553385417, 92.33506266276042, 91.33500162760416, 92.86324055989583, + 92.84513346354167, 92.22515869140625, 92.03035481770834, 92.62778727213542, + 92.62465413411456, 92.26536051432292, 92.1815185546875, 92.15211995442708, + 92.18479410807292, 91.76672363281251, 92.34792073567708 + ], + [ + 21.419881184895832, 19.269490559895832, 26.399271647135414, 29.172648111979164, + 20.83793131510417, 16.336832682291664, 23.368591308593754, 22.765909830729168, + 19.80364990234375, 16.225362141927082, 18.236328125, 16.939432779947918, + 22.00372314453125, 27.376302083333332, 18.383138020833332, 15.282552083333332, + 19.761861165364586, 20.841064453125, 0.0, 13.986735026041664, 18.559102376302082, + 18.912516276041664, 25.567647298177086, 23.779154459635418, 18.69891357421875, + 17.282674153645832, 17.879516601562504, 18.692606608072914, 94.48899332682291, + 95.37843831380209, 94.1180419921875, 94.35479736328125, 95.25101725260416, + 94.45426432291667, 94.60886637369791, 94.24983723958333, 95.06510416666667, + 94.93330891927083, 94.37377929687499, 94.23482259114584, 93.93503824869792, + 93.89123535156251, 93.54400634765625, 92.50427246093749, 94.1314697265625, + 94.10371907552083, 93.29538981119792, 93.24955240885417, 93.98842366536459, + 93.91485595703126, 93.38458251953125, 93.23693847656249, 93.25213623046875, + 93.19187418619792, 92.947021484375, 93.59617106119791 + ], + [ + 20.605834960937504, 19.714599609374996, 25.352600097656246, 25.890624999999996, + 18.786092122395832, 17.562703450520836, 21.736551920572918, 22.38358561197917, + 17.675150553385414, 18.346089680989582, 15.052368164062498, 14.933573404947918, + 24.283345540364582, 23.922403971354164, 18.670898437500004, 16.357666015625, + 20.970560709635414, 20.467610677083332, 13.986735026041664, 0.0, 20.222920735677082, + 19.690470377604168, 21.831685384114582, 24.615824381510418, 16.427958170572918, + 17.667602539062504, 19.4322509765625, 19.23114013671875, 94.19895426432294, + 95.05792236328125, 93.738037109375, 93.97816975911458, 94.84993489583334, + 94.09895833333336, 94.27126057942708, 93.89412434895833, 94.7442626953125, + 94.66845703125001, 94.03812662760416, 93.97049967447917, 93.62314860026044, + 93.57674153645833, 93.14345296223958, 92.11755371093749, 93.76538085937499, + 93.77514648437499, 92.91269938151041, 92.82889811197917, 93.67128499348958, + 93.6004842122396, 93.00661214192706, 92.83955891927083, 92.79042561848956, + 92.77598063151042, 92.59004720052084, 93.26104736328125 + ], + [ + 19.556254069010418, 17.456807454427082, 20.075602213541668, 24.296081542968746, + 20.65777587890625, 18.101338704427086, 18.845621744791668, 16.543924967447918, + 23.853841145833332, 17.81494140625, 17.936421712239586, 17.308919270833332, + 17.824625651041664, 22.01312255859375, 17.576070149739586, 13.842997233072916, + 12.263346354166666, 14.67864990234375, 18.559102376302082, 20.222920735677082, 0.0, + 11.903666178385416, 19.220784505208332, 14.4884033203125, 19.554036458333336, + 16.99639892578125, 15.080301920572916, 17.246134440104168, 93.91182454427083, + 94.76757812499999, 93.72475179036458, 93.86722819010417, 94.58990478515625, + 93.86777750651041, 94.07474772135417, 93.75665283203125, 94.38763427734375, + 94.16839599609375, 93.79042561848958, 93.63559977213541, 93.28605143229166, + 93.26690673828125, 92.92537434895834, 91.90419514973959, 93.44691975911458, + 93.43768310546875, 92.74064127604167, 92.56382242838541, 93.27425130208333, + 93.20353190104167, 92.83479817708334, 92.69122314453125, 92.75948079427084, + 92.7406005859375, 92.36907958984375, 92.97810872395833 + ], + [ + 17.234781901041668, 16.742024739583332, 17.844217936197918, 22.316569010416668, + 18.451904296875, 17.351643880208336, 17.64361572265625, 14.885172526041666, + 22.281392415364582, 18.335835774739586, 15.709676106770832, 15.816874186197918, + 17.404439290364586, 19.098958333333336, 13.773396809895834, 15.0001220703125, + 13.897440592447918, 13.657877604166666, 18.912516276041664, 19.690470377604168, + 11.903666178385416, 0.0, 19.061055501302082, 15.789774576822916, 18.136332194010418, + 16.5096435546875, 15.293009440104168, 14.842875162760416, 93.80889892578126, + 94.65802001953124, 93.53499348958333, 93.70741780598956, 94.445556640625, + 93.75496419270833, 93.97686767578125, 93.58321126302083, 94.29972330729167, + 94.128662109375, 93.642578125, 93.53080240885417, 93.17873128255208, 93.15612792968749, + 92.72165934244792, 91.81473795572917, 93.28120930989583, 93.30310058593749, + 92.60955810546875, 92.4456787109375, 93.12990315755208, 93.05649820963542, + 92.63360595703125, 92.53560384114584, 92.58571370442709, 92.56060791015626, + 92.20857747395833, 92.81760660807292 + ], + [ + 22.228006998697914, 21.795308430989586, 20.01318359375, 20.299784342447914, + 21.650492350260418, 21.293233235677082, 19.869913736979168, 20.480041503906246, + 25.413777669270836, 26.1182861328125, 16.70184326171875, 16.5914306640625, + 17.391764322916668, 15.39536539713542, 23.392476399739586, 22.195251464843754, + 16.717244466145836, 17.713846842447914, 25.567647298177086, 21.831685384114582, + 19.220784505208332, 19.061055501302082, 0.0, 15.552449544270834, 20.668212890625, + 22.41107177734375, 16.456685384114582, 18.290974934895832, 92.86149088541667, + 93.74296061197917, 92.68760172526042, 92.840087890625, 93.42653401692709, + 92.81138102213542, 93.06514485677083, 92.66164143880208, 93.27866617838541, + 93.10113525390625, 92.68056233723959, 92.53981526692708, 92.32063802083334, + 92.29136149088542, 92.00789388020833, 91.01300048828126, 92.3852335611979, + 92.40976969401042, 91.75439453125001, 91.61317952473958, 92.19978841145834, + 92.189697265625, 91.89717610677081, 91.74766031901042, 91.82649739583334, + 91.84195963541669, 91.36606852213541, 91.89396158854167 + ], + [ + 21.51043701171875, 20.01434326171875, 20.5010986328125, 24.76861572265625, + 23.67596435546875, 21.127827962239586, 21.38134765625, 18.371968587239586, + 27.4002685546875, 23.308024088541668, 20.77154541015625, 20.373819986979168, + 17.027140299479164, 20.546407063802086, 21.698954264322914, 20.123514811197918, + 14.407674153645834, 15.561625162760413, 23.779154459635418, 24.615824381510418, + 14.4884033203125, 15.789774576822916, 15.552449544270834, 0.0, 22.580322265625, + 19.965596516927082, 15.95237223307292, 16.497233072916668, 92.88728841145834, + 93.8209228515625, 92.65423583984374, 92.94136555989584, 93.51861572265625, + 92.73704020182292, 93.08939615885416, 92.78163655598959, 93.32004801432292, + 93.11419677734375, 92.68259684244791, 92.61248779296876, 92.32332356770831, + 92.35260009765625, 92.0574951171875, 91.01654052734376, 92.46970621744792, + 92.44732666015625, 91.77335611979167, 91.66982014973958, 92.20914713541667, + 92.15694173177084, 91.91288248697914, 91.78407796223959, 91.83260091145834, + 91.88586425781251, 91.36037190755208, 91.99336751302086 + ], + [ + 21.246114095052082, 21.42645263671875, 25.257934570312504, 23.686299641927082, + 18.761250813802082, 22.029195149739582, 20.744913736979164, 23.857482910156254, + 20.160481770833332, 21.655883789062496, 16.343851725260418, 15.280965169270834, + 22.49495442708333, 21.69899495442708, 16.89788818359375, 15.810892740885416, + 19.326253255208332, 19.65350341796875, 18.69891357421875, 16.427958170572918, + 19.554036458333336, 18.136332194010418, 20.668212890625, 22.580322265625, 0.0, + 12.985941569010416, 15.617370605468748, 14.925699869791666, 93.28328450520833, + 94.1910400390625, 92.94260660807291, 93.17960611979167, 94.00510660807292, + 93.26320393880209, 93.431884765625, 93.04307047526044, 93.89593505859374, + 93.70086669921875, 93.19476318359375, 93.08017985026042, 92.78560384114584, + 92.80006917317708, 92.34842936197916, 91.33925374348959, 92.97340901692709, + 92.95253499348958, 92.21903483072916, 92.10398356119792, 92.90173339843753, + 92.83223470052083, 92.16560872395833, 92.08640543619794, 92.0472412109375, + 92.05989583333333, 91.86700439453125, 92.51920572916667 + ], + [ + 21.053670247395836, 19.749837239583332, 25.979227701822918, 26.085164388020832, + 21.0076904296875, 21.001627604166664, 20.99957275390625, 22.419352213541664, + 22.157816569010418, 20.456197102864582, 17.368082682291664, 18.269795735677082, + 23.225931803385414, 23.2156982421875, 16.623575846354164, 14.515828450520832, + 18.004862467447914, 17.959187825520832, 17.282674153645832, 17.667602539062504, + 16.99639892578125, 16.5096435546875, 22.41107177734375, 19.965596516927082, + 12.985941569010416, 0.0, 17.058512369791664, 14.814066569010416, 93.36277262369792, + 94.27081298828125, 93.06062825520834, 93.28163655598959, 94.13944498697917, + 93.40539550781249, 93.49790445963542, 93.11234537760417, 93.989501953125, 93.823974609375, + 93.29117838541667, 93.25134277343749, 92.94952392578125, 92.9307861328125, + 92.45709228515626, 91.44209798177083, 93.06856282552084, 93.06538899739583, + 92.30385335286459, 92.22176106770834, 93.02280680338542, 92.94724527994791, + 92.32899983723959, 92.21012369791666, 92.18963623046875, 92.18638102213541, + 91.93672688802083, 92.59242757161459 + ], + [ + 20.784505208333336, 20.335449218749996, 21.15093994140625, 24.2203369140625, + 20.833089192708332, 19.320638020833336, 20.796000162760414, 20.229573567708332, + 23.221211751302086, 20.195170084635414, 17.906819661458332, 16.038960774739582, + 15.466532389322916, 20.513305664062496, 18.61572265625, 16.813720703125, + 14.69390869140625, 17.052693684895832, 17.879516601562504, 19.4322509765625, + 15.080301920572916, 15.293009440104168, 16.456685384114582, 15.95237223307292, + 15.617370605468748, 17.058512369791664, 0.0, 12.74566650390625, 92.53912353515624, + 93.41082763671875, 92.23347981770833, 92.41351318359375, 93.18599446614583, + 92.51224772135416, 92.71364339192708, 92.26143391927083, 93.04882812500001, + 92.85449218750001, 92.38977050781249, 92.262939453125, 92.01987711588542, + 91.97688802083334, 91.62526448567708, 90.63566080729167, 92.14790852864584, + 92.13659667968751, 91.44390869140624, 91.26883951822917, 91.96820068359375, + 91.94960530598959, 91.46535237630209, 91.39583333333333, 91.34320068359375, + 91.30914306640625, 91.02083333333334, 91.60675048828125 + ], + [ + 19.583353678385418, 18.74859619140625, 20.975301106770836, 22.833964029947918, + 19.553487141927082, 20.55194091796875, 18.9688720703125, 20.065531412760418, + 22.40653483072917, 22.3101806640625, 16.419087727864586, 16.411702473958336, + 17.511922200520832, 17.834574381510418, 16.48248291015625, 16.929707845052082, + 15.784505208333332, 14.763732910156252, 18.692606608072914, 19.23114013671875, + 17.246134440104168, 14.842875162760416, 18.290974934895832, 16.497233072916668, + 14.925699869791666, 14.814066569010416, 12.74566650390625, 0.0, 92.65079752604167, + 93.49552408854167, 92.32582600911458, 92.52022298177083, 93.30055745442708, + 92.57619222005208, 92.76359049479167, 92.38820393880208, 93.09938557942708, + 92.98390706380208, 92.43784586588541, 92.37013753255206, 92.09346516927083, + 92.06178792317708, 91.73933919270834, 90.67201741536458, 92.19826253255208, + 92.20798746744792, 91.48502604166666, 91.28188069661458, 92.07722981770833, + 92.025146484375, 91.5174560546875, 91.41033935546875, 91.40108235677083, + 91.38891601562501, 91.12424723307294, 91.70467122395834 + ], + [ + 94.44472249348958, 94.86838785807292, 94.79313151041667, 94.77158610026044, + 94.78835042317709, 94.87738037109375, 94.87418619791666, 94.76357014973959, + 94.47855631510417, 94.6219482421875, 94.33367919921875, 94.52482096354166, + 93.99003092447916, 94.18654378255208, 94.59653727213542, 94.42730712890626, + 93.77974446614583, 93.41387939453124, 94.48899332682291, 94.19895426432294, + 93.91182454427083, 93.80889892578126, 92.86149088541667, 92.88728841145834, + 93.28328450520833, 93.36277262369792, 92.53912353515624, 92.65079752604167, 0.0, + 11.7171630859375, 18.124247233072914, 16.146728515625, 15.48663330078125, + 13.60308837890625, 15.539876302083332, 13.64556884765625, 17.650370279947914, + 20.030212402343754, 16.431864420572918, 21.799458821614586, 19.514119466145832, + 18.254414876302086, 18.002929687500004, 17.000467936197918, 18.813578287760418, + 18.364400227864586, 15.982503255208334, 15.944559733072918, 19.90478515625, + 22.076741536458332, 20.753173828125, 19.80474853515625, 23.071695963541668, + 20.155843098958332, 22.678812662760418, 22.610636393229168 + ], + [ + 95.28102620442708, 95.75356038411458, 95.69958496093751, 95.57720947265626, + 95.61765543619791, 95.70078531901042, 95.74727376302083, 95.58119710286459, + 95.35856119791667, 95.47041829427083, 95.16473388671874, 95.43229166666667, + 94.85750325520833, 95.09438069661456, 95.46160888671875, 95.31195068359374, + 94.66442871093749, 94.23350016276042, 95.37843831380209, 95.05792236328125, + 94.76757812499999, 94.65802001953124, 93.74296061197917, 93.8209228515625, + 94.1910400390625, 94.27081298828125, 93.41082763671875, 93.49552408854167, + 11.7171630859375, 0.0, 16.968404134114582, 14.097900390625, 13.53802490234375, + 13.824727376302086, 15.163370768229168, 13.75221761067708, 18.12579345703125, + 21.063822428385414, 14.434427897135418, 19.91998291015625, 17.928466796875, + 15.861592610677084, 17.5390625, 18.274149576822918, 19.639017740885414, 17.15936279296875, + 15.49462890625, 14.519673665364584, 20.117594401041668, 21.901896158854164, + 18.928629557291668, 18.134175618489582, 21.795328776041668, 20.250691731770836, + 22.53460693359375, 22.3251953125 + ], + [ + 94.16617838541667, 94.584716796875, 94.64837646484375, 94.69384765625, 94.47705078125001, + 94.52144368489583, 94.65565999348958, 94.5611572265625, 94.07423909505206, + 94.18194580078124, 94.02555338541667, 94.29201253255208, 93.72930908203125, + 94.10567220052083, 94.34566243489583, 94.14534505208334, 93.57517496744792, + 93.1575927734375, 94.1180419921875, 93.738037109375, 93.72475179036458, 93.53499348958333, + 92.68760172526042, 92.65423583984374, 92.94260660807291, 93.06062825520834, + 92.23347981770833, 92.32582600911458, 18.124247233072914, 16.968404134114582, 0.0, + 14.83465576171875, 16.5675048828125, 17.652099609375, 14.920715332031252, + 14.266194661458334, 24.409749348958336, 26.12691243489583, 23.469441731770832, + 19.3740234375, 18.215026855468746, 17.787027994791668, 15.192118326822918, + 17.416341145833332, 22.833658854166668, 22.088338216145832, 17.106180826822914, + 18.987386067708332, 27.870992024739586, 26.563822428385414, 18.98089599609375, + 17.676798502604164, 19.71099853515625, 19.83807373046875, 22.407389322916668, + 25.263488769531254 + ], + [ + 94.30828857421875, 94.73227945963541, 94.85892740885417, 94.90948486328125, + 94.62795003255208, 94.64975992838542, 94.83955891927084, 94.67429606119792, + 94.27559407552083, 94.38875325520833, 94.22674560546875, 94.48579915364583, + 93.95418294270833, 94.31557210286459, 94.51621500651041, 94.25103759765624, + 93.76700846354166, 93.34893798828125, 94.35479736328125, 93.97816975911458, + 93.86722819010417, 93.70741780598956, 92.840087890625, 92.94136555989584, + 93.17960611979167, 93.28163655598959, 92.41351318359375, 92.52022298177083, + 16.146728515625, 14.097900390625, 14.83465576171875, 0.0, 18.874125162760418, + 18.844177246093754, 14.970621744791668, 14.889343261718752, 24.238830566406246, + 25.477762858072918, 19.438944498697914, 25.27158610026042, 21.169718424479168, + 20.341166178385414, 18.145060221354164, 18.243794759114582, 24.350240071614586, + 22.408996582031254, 15.670572916666666, 15.45440673828125, 25.853556315104168, + 26.899454752604168, 21.567586263020836, 20.048604329427086, 22.229451497395832, + 19.673909505208336, 25.361877441406246, 25.0765380859375 + ], + [ + 95.12670898437501, 95.52347819010417, 95.36285400390624, 95.22155761718751, + 95.41271972656251, 95.51383463541667, 95.47784423828124, 95.35603841145834, + 95.18646240234375, 95.31960042317709, 94.9737548828125, 95.22751871744792, + 94.55006917317708, 94.82137044270834, 95.24173990885416, 95.10982259114583, + 94.37001546223956, 94.01871744791667, 95.25101725260416, 94.84993489583334, + 94.58990478515625, 94.445556640625, 93.42653401692709, 93.51861572265625, + 94.00510660807292, 94.13944498697917, 93.18599446614583, 93.30055745442708, + 15.48663330078125, 13.53802490234375, 16.5675048828125, 18.874125162760418, 0.0, + 10.266886393229166, 15.668233235677082, 15.024739583333332, 16.867024739583336, + 17.6138916015625, 15.2103271484375, 13.193603515624998, 13.407124837239582, + 12.331949869791666, 16.772481282552082, 17.180257161458336, 15.917887369791668, + 15.5726318359375, 15.909281412760418, 17.047566731770836, 19.675557454427082, + 18.275980631510414, 17.600199381510418, 17.3551025390625, 19.765726725260418, + 19.797017415364582, 19.055013020833336, 20.28155517578125 + ], + [ + 94.36861165364583, 94.77258300781249, 94.65948486328125, 94.54581705729167, + 94.63069661458333, 94.78470865885416, 94.75217692057291, 94.68172200520833, + 94.45542399088542, 94.60801188151042, 94.20796712239584, 94.46449788411459, + 93.77239990234376, 94.06591796875, 94.54276529947917, 94.29451497395833, + 93.73557535807292, 93.25911458333334, 94.45426432291667, 94.09895833333336, + 93.86777750651041, 93.75496419270833, 92.81138102213542, 92.73704020182292, + 93.26320393880209, 93.40539550781249, 92.51224772135416, 92.57619222005208, + 13.60308837890625, 13.824727376302086, 17.652099609375, 18.844177246093754, + 10.266886393229166, 0.0, 14.982198079427084, 13.557535807291666, 16.665079752604164, + 17.628173828125, 15.449137369791668, 14.641886393229164, 14.918680826822916, + 14.055948893229166, 16.969340006510414, 15.1634521484375, 15.884236653645832, + 16.209513346354164, 16.164082845052082, 16.272705078125, 19.46270751953125, + 18.486836751302082, 18.473531087239582, 18.130615234375, 20.263773600260418, + 20.17559814453125, 19.737589518229168, 20.620463053385414 + ], + [ + 94.56561279296876, 94.93585205078125, 94.98148600260416, 94.89495849609375, + 94.83034261067709, 94.88718668619792, 95.02551269531249, 94.91021728515625, + 94.50577799479166, 94.66845703125001, 94.46730550130209, 94.69828287760419, + 94.2244873046875, 94.51039632161458, 94.79123942057292, 94.53538004557292, + 93.95373535156251, 93.55267333984375, 94.60886637369791, 94.27126057942708, + 94.07474772135417, 93.97686767578125, 93.06514485677083, 93.08939615885416, + 93.431884765625, 93.49790445963542, 92.71364339192708, 92.76359049479167, + 15.539876302083332, 15.163370768229168, 14.920715332031252, 14.970621744791668, + 15.668233235677082, 14.982198079427084, 0.0, 12.25164794921875, 20.86785888671875, + 21.341817220052082, 19.313822428385414, 19.410380045572914, 16.885294596354164, + 17.688456217447914, 13.522542317708334, 16.376444498697918, 17.95599365234375, + 19.479838053385414, 15.17822265625, 17.065653483072914, 24.717325846354168, + 22.633585611979168, 20.075927734375, 18.685282389322918, 18.135579427083332, + 19.2568359375, 22.25177001953125, 22.316691080729164 + ], + [ + 94.11405436197916, 94.59973144531253, 94.64699300130208, 94.53670247395833, + 94.47806803385417, 94.49519856770831, 94.63393147786458, 94.49344889322917, + 94.13417561848959, 94.32586669921875, 94.05293782552083, 94.22959391276041, + 93.77968343098959, 94.06901041666667, 94.33780924479167, 94.18216959635417, + 93.62396240234375, 93.22025553385417, 94.24983723958333, 93.89412434895833, + 93.75665283203125, 93.58321126302083, 92.66164143880208, 92.78163655598959, + 93.04307047526044, 93.11234537760417, 92.26143391927083, 92.38820393880208, + 13.64556884765625, 13.75221761067708, 14.266194661458334, 14.889343261718752, + 15.024739583333332, 13.557535807291666, 12.25164794921875, 0.0, 20.458618164062496, + 22.856201171875, 18.135172526041668, 20.558430989583336, 18.088724772135414, 16.71484375, + 14.862894694010416, 14.865275065104168, 18.318562825520832, 18.338216145833336, + 15.95611572265625, 15.052775065104168, 22.773783365885418, 23.600199381510418, + 18.695943196614582, 17.896199544270836, 19.742899576822914, 19.043558756510418, + 22.732055664062504, 23.244527180989582 + ], + [ + 94.90852864583333, 95.3734130859375, 95.16864013671875, 94.91931152343751, + 95.27803548177083, 95.38297526041667, 95.26922607421875, 95.16971842447916, + 95.09210205078126, 95.21437581380209, 94.83247884114581, 95.03021240234375, + 94.31679280598958, 94.57137044270833, 95.09541829427083, 94.94291178385416, + 94.22963460286459, 93.78479003906251, 95.06510416666667, 94.7442626953125, + 94.38763427734375, 94.29972330729167, 93.27866617838541, 93.32004801432292, + 93.89593505859374, 93.989501953125, 93.04882812500001, 93.09938557942708, + 17.650370279947914, 18.12579345703125, 24.409749348958336, 24.238830566406246, + 16.867024739583336, 16.665079752604164, 20.86785888671875, 20.458618164062496, 0.0, + 13.209513346354168, 15.0872802734375, 19.239379882812504, 17.96124267578125, + 17.688883463541668, 22.42913818359375, 23.701171875, 15.493326822916666, + 13.407511393229168, 17.99603271484375, 19.565999348958332, 16.356384277343754, + 16.459004720052086, 22.032694498697918, 20.475789388020836, 24.31976318359375, + 22.799458821614586, 18.057779947916664, 18.14593505859375 + ], + [ + 94.75211588541667, 95.18953450520834, 94.91200764973959, 94.7156982421875, + 95.07149251302083, 95.19169108072917, 95.08465576171876, 94.96354166666669, + 94.96913655598958, 95.10764567057292, 94.63468424479167, 94.87424723307292, + 94.13531494140626, 94.37089029947919, 94.982421875, 94.74027506510416, 94.05885823567708, + 93.62223307291669, 94.93330891927083, 94.66845703125001, 94.16839599609375, + 94.128662109375, 93.10113525390625, 93.11419677734375, 93.70086669921875, 93.823974609375, + 92.85449218750001, 92.98390706380208, 20.030212402343754, 21.063822428385414, + 26.12691243489583, 25.477762858072918, 17.6138916015625, 17.628173828125, + 21.341817220052082, 22.856201171875, 13.209513346354168, 0.0, 16.6156005859375, + 19.010294596354164, 16.777364095052082, 19.14794921875, 23.868672688802086, + 22.8248291015625, 16.197347005208332, 15.600504557291668, 19.92449951171875, + 22.634928385416668, 20.865743001302086, 13.113993326822916, 22.620463053385418, + 23.364583333333332, 23.82122802734375, 22.44683837890625, 18.829833984375004, + 16.82635498046875 + ], + [ + 94.24149576822917, 94.71634928385417, 94.55690511067708, 94.35697428385416, + 94.57303873697917, 94.6611328125, 94.70688883463542, 94.53104654947917, 94.37375895182291, + 94.50657145182294, 94.15388997395834, 94.33929443359375, 93.65118408203125, + 94.000244140625, 94.46492513020833, 94.26875813802083, 93.63828531901042, + 93.21114095052084, 94.37377929687499, 94.03812662760416, 93.79042561848958, 93.642578125, + 92.68056233723959, 92.68259684244791, 93.19476318359375, 93.29117838541667, + 92.38977050781249, 92.43784586588541, 16.431864420572918, 14.434427897135418, + 23.469441731770832, 19.438944498697914, 15.2103271484375, 15.449137369791668, + 19.313822428385414, 18.135172526041668, 15.0872802734375, 16.6156005859375, 0.0, + 18.548502604166668, 18.251241048177082, 16.994140625000004, 21.657938639322918, + 21.662434895833332, 17.605183919270832, 15.525187174479168, 17.25897216796875, + 15.838297526041668, 16.06341552734375, 18.495096842447918, 20.943868001302086, + 19.924031575520836, 23.379781087239582, 21.296773274739582, 20.567708333333336, + 20.123026529947914 + ], + [ + 94.1085205078125, 94.55558268229167, 94.41737874348958, 94.22635904947917, + 94.43937174479167, 94.54182942708334, 94.50994873046875, 94.40869140625, + 94.20233154296874, 94.42645263671875, 93.97819010416666, 94.24200439453125, + 93.61647542317709, 93.88240559895833, 94.31852213541667, 94.15047200520833, + 93.45375569661458, 93.08955891927084, 94.23482259114584, 93.97049967447917, + 93.63559977213541, 93.53080240885417, 92.53981526692708, 92.61248779296876, + 93.08017985026042, 93.25134277343749, 92.262939453125, 92.37013753255206, + 21.799458821614586, 19.91998291015625, 19.3740234375, 25.27158610026042, + 13.193603515624998, 14.641886393229164, 19.410380045572914, 20.558430989583336, + 19.239379882812504, 19.010294596354164, 18.548502604166668, 0.0, 14.38800048828125, + 14.582112630208332, 19.977274576822914, 22.14599609375, 17.8834228515625, + 18.085896809895832, 19.384134928385414, 21.8304443359375, 23.091044108072914, + 19.407694498697918, 20.137837727864582, 20.00390625, 20.948465983072914, + 23.00823974609375, 18.931844075520832, 21.641133626302086 + ], + [ + 93.74505615234374, 94.25815836588542, 94.1212158203125, 93.93019612630208, + 94.13795979817708, 94.20652262369792, 94.2401123046875, 94.05885823567709, + 93.91031901041667, 94.0771484375, 93.74318440755209, 93.98905436197916, 93.32222493489584, + 93.55067952473959, 94.00128173828126, 93.80230712890626, 93.17451985677084, + 92.79103597005208, 93.93503824869792, 93.62314860026044, 93.28605143229166, + 93.17873128255208, 92.32063802083334, 92.32332356770831, 92.78560384114584, + 92.94952392578125, 92.01987711588542, 92.09346516927083, 19.514119466145832, + 17.928466796875, 18.215026855468746, 21.169718424479168, 13.407124837239582, + 14.918680826822916, 16.885294596354164, 18.088724772135414, 17.96124267578125, + 16.777364095052082, 18.251241048177082, 14.38800048828125, 0.0, 10.51861572265625, + 16.225667317708332, 17.26861572265625, 13.631368001302084, 13.468526204427084, + 14.405924479166668, 17.656473795572914, 21.075154622395836, 15.926432291666666, + 14.9322509765625, 15.63397216796875, 16.222452799479164, 17.404378255208336, + 15.391988118489582, 16.166666666666664 + ], + [ + 93.78169759114583, 94.1888427734375, 94.06272379557292, 93.8572998046875, + 94.08565266927084, 94.19160970052083, 94.19268798828126, 94.03369140625, + 93.85544840494791, 93.96596272786458, 93.66528320312499, 93.93267822265626, + 93.25087483723958, 93.52705891927083, 93.99658203125, 93.79622395833333, 93.1231892903646, + 92.72025553385417, 93.89123535156251, 93.57674153645833, 93.26690673828125, + 93.15612792968749, 92.29136149088542, 92.35260009765625, 92.80006917317708, + 92.9307861328125, 91.97688802083334, 92.06178792317708, 18.254414876302086, + 15.861592610677084, 17.787027994791668, 20.341166178385414, 12.331949869791666, + 14.055948893229166, 17.688456217447914, 16.71484375, 17.688883463541668, 19.14794921875, + 16.994140625000004, 14.582112630208332, 10.51861572265625, 0.0, 16.15362548828125, + 17.577718098958332, 14.190958658854166, 13.346761067708334, 14.392639160156248, + 15.431803385416668, 18.79030354817708, 17.775410970052086, 14.322855631510418, 14.3203125, + 17.150004069010418, 17.726826985677082, 15.663777669270834, 17.947733561197918 + ], + [ + 93.38283284505208, 93.82082112630208, 93.76053873697917, 93.60809326171875, + 93.67287190755208, 93.72833251953126, 93.8880615234375, 93.67417399088542, + 93.42403157552086, 93.56172688802084, 93.25136311848959, 93.49409993489583, + 92.94474283854167, 93.22532145182292, 93.63149007161459, 93.44203694661458, + 92.80029296875, 92.33506266276042, 93.54400634765625, 93.14345296223958, + 92.92537434895834, 92.72165934244792, 92.00789388020833, 92.0574951171875, + 92.34842936197916, 92.45709228515626, 91.62526448567708, 91.73933919270834, + 18.002929687500004, 17.5390625, 15.192118326822918, 18.145060221354164, + 16.772481282552082, 16.969340006510414, 13.522542317708334, 14.862894694010416, + 22.42913818359375, 23.868672688802086, 21.657938639322918, 19.977274576822914, + 16.225667317708332, 16.15362548828125, 0.0, 13.541890462239584, 18.951517740885414, + 19.38372802734375, 12.8707275390625, 15.048238118489586, 25.420369466145836, + 23.946207682291668, 16.654703776041668, 15.114929199218748, 15.113972981770834, + 16.429646809895832, 20.240783691406254, 21.603352864583336 + ], + [ + 92.34895833333333, 92.7725830078125, 92.80942789713542, 92.66060384114584, + 92.64762369791666, 92.77242024739583, 92.84474690755206, 92.66516113281249, + 92.39711507161459, 92.49281819661459, 92.29597981770833, 92.54933675130209, + 91.94309488932291, 92.25516764322916, 92.56136067708331, 92.39742024739584, + 91.74110921223959, 91.33500162760416, 92.50427246093749, 92.11755371093749, + 91.90419514973959, 91.81473795572917, 91.01300048828126, 91.01654052734376, + 91.33925374348959, 91.44209798177083, 90.63566080729167, 90.67201741536458, + 17.000467936197918, 18.274149576822918, 17.416341145833332, 18.243794759114582, + 17.180257161458336, 15.1634521484375, 16.376444498697918, 14.865275065104168, + 23.701171875, 22.8248291015625, 21.662434895833332, 22.14599609375, 17.26861572265625, + 17.577718098958332, 13.541890462239584, 0.0, 19.297810872395832, 20.083740234375, + 15.171000162760414, 15.780069986979168, 25.978535970052082, 22.665100097656246, + 15.61920166015625, 16.5738525390625, 16.360127766927086, 15.42596435546875, + 21.647989908854168, 21.75933837890625 + ], + [ + 93.88944498697917, 94.39428710937499, 94.20086669921875, 93.89188639322916, + 94.23482259114583, 94.3226318359375, 94.31760660807291, 94.15523274739584, + 94.01332600911458, 94.18174235026042, 93.8187255859375, 94.07716878255208, + 93.37497965494792, 93.63956705729166, 94.15450032552083, 93.96492513020833, + 93.25229899088541, 92.86324055989583, 94.1314697265625, 93.76538085937499, + 93.44691975911458, 93.28120930989583, 92.3852335611979, 92.46970621744792, + 92.97340901692709, 93.06856282552084, 92.14790852864584, 92.19826253255208, + 18.813578287760418, 19.639017740885414, 22.833658854166668, 24.350240071614586, + 15.917887369791668, 15.884236653645832, 17.95599365234375, 18.318562825520832, + 15.493326822916666, 16.197347005208332, 17.605183919270832, 17.8834228515625, + 13.631368001302084, 14.190958658854166, 18.951517740885414, 19.297810872395832, 0.0, + 12.1107177734375, 17.120707194010418, 18.90625, 16.427225748697914, 13.870422363281252, + 17.763081868489582, 18.204833984375, 19.56707763671875, 19.559753417968754, + 15.713256835937502, 15.619771321614584 + ], + [ + 93.94034830729166, 94.41259765625, 94.18821207682292, 93.91662597656249, + 94.30712890625001, 94.38671875000001, 94.32928466796876, 94.1231689453125, + 94.09206136067709, 94.22304280598958, 93.8427734375, 94.10337320963542, 93.40098063151042, + 93.62186686197917, 94.1595458984375, 94.0174560546875, 93.24839274088541, + 92.84513346354167, 94.10371907552083, 93.77514648437499, 93.43768310546875, + 93.30310058593749, 92.40976969401042, 92.44732666015625, 92.95253499348958, + 93.06538899739583, 92.13659667968751, 92.20798746744792, 18.364400227864586, + 17.15936279296875, 22.088338216145832, 22.408996582031254, 15.5726318359375, + 16.209513346354164, 19.479838053385414, 18.338216145833336, 13.407511393229168, + 15.600504557291668, 15.525187174479168, 18.085896809895832, 13.468526204427084, + 13.346761067708334, 19.38372802734375, 20.083740234375, 12.1107177734375, 0.0, + 15.266092936197916, 17.0679931640625, 15.563944498697916, 13.43609619140625, + 16.184956868489582, 16.592041015625, 19.90960693359375, 19.268086751302086, + 14.63028971354167, 14.921651204427084 + ], + [ + 93.16851806640625, 93.63136800130209, 93.50240071614583, 93.35797119140625, + 93.48862711588542, 93.60085042317709, 93.59098307291667, 93.45188395182291, + 93.24308268229167, 93.3829345703125, 93.11741129557291, 93.31722005208334, + 92.69954427083333, 92.89605712890624, 93.42360432942708, 93.22662353515626, + 92.56416829427083, 92.22515869140625, 93.29538981119792, 92.91269938151041, + 92.74064127604167, 92.60955810546875, 91.75439453125001, 91.77335611979167, + 92.21903483072916, 92.30385335286459, 91.44390869140624, 91.48502604166666, + 15.982503255208334, 15.49462890625, 17.106180826822914, 15.670572916666666, + 15.909281412760418, 16.164082845052082, 15.17822265625, 15.95611572265625, + 17.99603271484375, 19.92449951171875, 17.25897216796875, 19.384134928385414, + 14.405924479166668, 14.392639160156248, 12.8707275390625, 15.171000162760414, + 17.120707194010418, 15.266092936197916, 0.0, 11.427266438802082, 21.067952473958336, + 19.950439453125, 15.986897786458332, 14.287414550781252, 16.54296875, 15.026977539062498, + 17.32497151692708, 17.379475911458336 + ], + [ + 93.04101562500001, 93.55399576822917, 93.42392985026042, 93.25590006510417, + 93.39550781249999, 93.44962565104166, 93.55963134765624, 93.28792317708333, + 93.14739990234375, 93.26153564453125, 92.99580891927083, 93.23284912109375, + 92.56235758463542, 92.84077962239584, 93.26098632812499, 93.114990234375, + 92.42738850911458, 92.03035481770834, 93.24955240885417, 92.82889811197917, + 92.56382242838541, 92.4456787109375, 91.61317952473958, 91.66982014973958, + 92.10398356119792, 92.22176106770834, 91.26883951822917, 91.28188069661458, + 15.944559733072918, 14.519673665364584, 18.987386067708332, 15.45440673828125, + 17.047566731770836, 16.272705078125, 17.065653483072914, 15.052775065104168, + 19.565999348958332, 22.634928385416668, 15.838297526041668, 21.8304443359375, + 17.656473795572914, 15.431803385416668, 15.048238118489586, 15.780069986979168, 18.90625, + 17.0679931640625, 11.427266438802082, 0.0, 19.106302897135418, 22.793111165364586, + 17.657124837239586, 15.3951416015625, 19.180643717447914, 17.052591959635414, + 19.79638671875, 20.485453287760418 + ], + [ + 93.77386474609376, 94.26255289713542, 93.97147623697917, 93.75661214192708, + 94.12758382161458, 94.21506754557292, 94.1297607421875, 93.96962483723958, + 93.99430338541667, 94.1060791015625, 93.66257731119792, 93.88179524739584, + 93.112060546875, 93.35569254557292, 94.01092529296875, 93.83888753255208, 93.06201171875, + 92.62778727213542, 93.98842366536459, 93.67128499348958, 93.27425130208333, + 93.12990315755208, 92.19978841145834, 92.20914713541667, 92.90173339843753, + 93.02280680338542, 91.96820068359375, 92.07722981770833, 19.90478515625, + 20.117594401041668, 27.870992024739586, 25.853556315104168, 19.675557454427082, + 19.46270751953125, 24.717325846354168, 22.773783365885418, 16.356384277343754, + 20.865743001302086, 16.06341552734375, 23.091044108072914, 21.075154622395836, + 18.79030354817708, 25.420369466145836, 25.978535970052082, 16.427225748697914, + 15.563944498697916, 21.067952473958336, 19.106302897135418, 0.0, 17.993937174479168, + 23.500854492187504, 22.052347819010414, 27.450724283854164, 24.8564453125, + 18.60028076171875, 19.518513997395832 + ], + [ + 93.69598388671875, 94.20831298828125, 93.90604654947916, 93.63637288411458, + 94.04347737630208, 94.22308349609374, 94.08520507812499, 93.93206787109374, + 93.90848795572916, 94.037109375, 93.63714599609374, 93.86796061197916, 93.0968017578125, + 93.34438069661458, 93.97393798828126, 93.76352945963542, 93.043212890625, + 92.62465413411456, 93.91485595703126, 93.6004842122396, 93.20353190104167, + 93.05649820963542, 92.189697265625, 92.15694173177084, 92.83223470052083, + 92.94724527994791, 91.94960530598959, 92.025146484375, 22.076741536458332, + 21.901896158854164, 26.563822428385414, 26.899454752604168, 18.275980631510414, + 18.486836751302082, 22.633585611979168, 23.600199381510418, 16.459004720052086, + 13.113993326822916, 18.495096842447918, 19.407694498697918, 15.926432291666666, + 17.775410970052086, 23.946207682291668, 22.665100097656246, 13.870422363281252, + 13.43609619140625, 19.950439453125, 22.793111165364586, 17.993937174479168, 0.0, + 20.506551106770836, 21.958964029947918, 22.415323893229168, 22.365397135416664, + 15.539082845052082, 13.824218749999998 + ], + [ + 93.19500732421876, 93.64996337890625, 93.6387939453125, 93.46006266276042, + 93.54335530598958, 93.59678141276042, 93.69555664062499, 93.50095621744791, + 93.2200927734375, 93.38525390625, 93.13214111328125, 93.39147949218749, 92.93733723958334, + 93.17124430338544, 93.47247314453125, 93.28489176432292, 92.72696940104167, + 92.26536051432292, 93.38458251953125, 93.00661214192706, 92.83479817708334, + 92.63360595703125, 91.89717610677081, 91.91288248697914, 92.16560872395833, + 92.32899983723959, 91.46535237630209, 91.5174560546875, 20.753173828125, + 18.928629557291668, 18.98089599609375, 21.567586263020836, 17.600199381510418, + 18.473531087239582, 20.075927734375, 18.695943196614582, 22.032694498697918, + 22.620463053385418, 20.943868001302086, 20.137837727864582, 14.9322509765625, + 14.322855631510418, 16.654703776041668, 15.61920166015625, 17.763081868489582, + 16.184956868489582, 15.986897786458332, 17.657124837239586, 23.500854492187504, + 20.506551106770836, 0.0, 11.13165283203125, 13.33308919270833, 13.731160481770834, + 17.852152506510418, 18.709920247395832 + ], + [ + 93.06608072916666, 93.55977376302083, 93.44944254557292, 93.36629231770833, + 93.39815266927084, 93.42622884114583, 93.58880615234375, 93.42574055989584, + 93.10854085286459, 93.25913492838541, 93.03816731770831, 93.29290771484375, + 92.79665120442708, 93.04073079427083, 93.31376139322917, 93.17643229166667, + 92.56654866536459, 92.1815185546875, 93.23693847656249, 92.83955891927083, + 92.69122314453125, 92.53560384114584, 91.74766031901042, 91.78407796223959, + 92.08640543619794, 92.21012369791666, 91.39583333333333, 91.41033935546875, + 19.80474853515625, 18.134175618489582, 17.676798502604164, 20.048604329427086, + 17.3551025390625, 18.130615234375, 18.685282389322918, 17.896199544270836, + 20.475789388020836, 23.364583333333332, 19.924031575520836, 20.00390625, + 15.63397216796875, 14.3203125, 15.114929199218748, 16.5738525390625, 18.204833984375, + 16.592041015625, 14.287414550781252, 15.3951416015625, 22.052347819010414, + 21.958964029947918, 11.13165283203125, 0.0, 13.686055501302084, 14.32366943359375, + 17.029744466145836, 19.560892740885414 + ], + [ + 93.00933837890625, 93.47983805338544, 93.54781087239583, 93.43857828776042, + 93.33872477213541, 93.43410237630208, 93.55900065104166, 93.38051350911459, + 93.03666178385416, 93.16357421875, 93.05206298828126, 93.25004069010416, + 92.85668945312501, 93.16623942057292, 93.36985270182291, 93.12123616536458, + 92.59981282552083, 92.15211995442708, 93.25213623046875, 92.79042561848956, + 92.75948079427084, 92.58571370442709, 91.82649739583334, 91.83260091145834, + 92.0472412109375, 92.18963623046875, 91.34320068359375, 91.40108235677083, + 23.071695963541668, 21.795328776041668, 19.71099853515625, 22.229451497395832, + 19.765726725260418, 20.263773600260418, 18.135579427083332, 19.742899576822914, + 24.31976318359375, 23.82122802734375, 23.379781087239582, 20.948465983072914, + 16.222452799479164, 17.150004069010418, 15.113972981770834, 16.360127766927086, + 19.56707763671875, 19.90960693359375, 16.54296875, 19.180643717447914, 27.450724283854164, + 22.415323893229168, 13.33308919270833, 13.686055501302084, 0.0, 12.343505859375, + 20.189798990885418, 20.378987630208336 + ], + [ + 93.01247151692708, 93.40834554036458, 93.554443359375, 93.47458902994792, + 93.35935465494791, 93.39552815755209, 93.57666015625, 93.40757242838541, + 93.00728352864583, 93.12186686197916, 93.03774007161458, 93.2972412109375, + 92.87923177083334, 93.14577229817709, 93.36159261067709, 93.08266194661458, + 92.57153320312499, 92.18479410807292, 93.19187418619792, 92.77598063151042, + 92.7406005859375, 92.56060791015626, 91.84195963541669, 91.88586425781251, + 92.05989583333333, 92.18638102213541, 91.30914306640625, 91.38891601562501, + 20.155843098958332, 20.250691731770836, 19.83807373046875, 19.673909505208336, + 19.797017415364582, 20.17559814453125, 19.2568359375, 19.043558756510418, + 22.799458821614586, 22.44683837890625, 21.296773274739582, 23.00823974609375, + 17.404378255208336, 17.726826985677082, 16.429646809895832, 15.42596435546875, + 19.559753417968754, 19.268086751302086, 15.026977539062498, 17.052591959635414, + 24.8564453125, 22.365397135416664, 13.731160481770834, 14.32366943359375, 12.343505859375, + 0.0, 19.115702311197918, 18.824178059895836 + ], + [ + 92.75638834635416, 93.2069091796875, 93.08534749348958, 92.864013671875, + 93.14261881510419, 93.17846679687501, 93.21632893880208, 93.05338541666667, + 92.86875406901042, 93.04962158203126, 92.71858723958334, 92.89211018880208, + 92.26023356119792, 92.49552408854167, 93.01802571614583, 92.8416748046875, + 92.17429606119791, 91.76672363281251, 92.947021484375, 92.59004720052084, + 92.36907958984375, 92.20857747395833, 91.36606852213541, 91.36037190755208, + 91.86700439453125, 91.93672688802083, 91.02083333333334, 91.12424723307294, + 22.678812662760418, 22.53460693359375, 22.407389322916668, 25.361877441406246, + 19.055013020833336, 19.737589518229168, 22.25177001953125, 22.732055664062504, + 18.057779947916664, 18.829833984375004, 20.567708333333336, 18.931844075520832, + 15.391988118489582, 15.663777669270834, 20.240783691406254, 21.647989908854168, + 15.713256835937502, 14.63028971354167, 17.32497151692708, 19.79638671875, + 18.60028076171875, 15.539082845052082, 17.852152506510418, 17.029744466145836, + 20.189798990885418, 19.115702311197918, 0.0, 11.228169759114582 + ], + [ + 93.36850992838541, 93.83998616536459, 93.66516113281251, 93.39735921223959, + 93.71303304036458, 93.80499267578125, 93.80745442708333, 93.64621988932291, + 93.55135091145836, 93.62048339843751, 93.30653889973959, 93.56457519531249, + 92.85367838541667, 93.08237711588542, 93.65464274088542, 93.45611572265625, + 92.74507649739583, 92.34792073567708, 93.59617106119791, 93.26104736328125, + 92.97810872395833, 92.81760660807292, 91.89396158854167, 91.99336751302086, + 92.51920572916667, 92.59242757161459, 91.60675048828125, 91.70467122395834, + 22.610636393229168, 22.3251953125, 25.263488769531254, 25.0765380859375, + 20.28155517578125, 20.620463053385414, 22.316691080729164, 23.244527180989582, + 18.14593505859375, 16.82635498046875, 20.123026529947914, 21.641133626302086, + 16.166666666666664, 17.947733561197918, 21.603352864583336, 21.75933837890625, + 15.619771321614584, 14.921651204427084, 17.379475911458336, 20.485453287760418, + 19.518513997395832, 13.824218749999998, 18.709920247395832, 19.560892740885414, + 20.378987630208336, 18.824178059895836, 11.228169759114582, 0.0 + ] + ], + "units": "SYS_CNT ticks", + "source": { + "name": "scalar_128MiB_vector_isolated", + "matrices": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_vector_isolated.npz", + "sha256": "98ab4a82dab9516358857cb90ed0d463fefde5db89690a4842b6a234cc4fe067", + "bytes": 5105504 + }, + "statistics": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_vector_isolated.json", + "sha256": "c4e4a3f49be519d4d6456eff85a1cb7ddf5551bfb31cf5225b6cb3a10d118ab9", + "bytes": 55623 + } + }, + "pair_statistics": { + "all_unique_core_pairs": { + "count": 1540, + "mean": 56.73007554884081, + "std": 37.55932583033218, + "quantiles": { + "0.0": 10.266886393229166, + "0.01": 12.794440307617188, + "0.05": 14.760241699218751, + "0.25": 18.337621053059898, + "0.5": 91.37749226888022, + "0.75": 93.57668050130208, + "0.95": 94.7848907470703, + "0.99": 95.3764784749349, + "1.0": 95.75356038411458 + } + }, + "within_decoded_die": { + "count": 756, + "mean": 18.560057974786773, + "std": 3.286376466133168, + "quantiles": { + "0.0": 10.266886393229166, + "0.01": 11.819739786783854, + "0.05": 13.624298095703125, + "0.25": 16.19342549641927, + "0.5": 18.269012451171875, + "0.75": 20.60856628417969, + "0.95": 24.32738240559896, + "0.99": 26.71485697428387, + "1.0": 29.172648111979164 + } + }, + "between_decoded_die": { + "count": 784, + "mean": 93.53687820953577, + "std": 0.9757521993027309, + "quantiles": { + "0.0": 90.63566080729167, + "0.01": 91.30450846354167, + "0.05": 91.86983337402344, + "0.25": 92.87661234537761, + "0.5": 93.55672200520833, + "0.75": 94.23060099283855, + "0.95": 95.09526265462239, + "0.99": 95.51547403971355, + "1.0": 95.75356038411458 + } + } + }, + "dieGroups": [ + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B" + ] + }, + { + "condition": "scalar_128MiB_vector_concurrent", + "metric": "distance", + "coreids": [ + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 44, + 45, 46, 47, 48, 49, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 96, 97, 98, 99, 100, 101 + ], + "matrix": [ + [ + 0.0, 38.559305826822914, 45.93680826822917, 43.5384521484375, 35.17413330078124, + 36.49820963541667, 27.312683105468746, 36.554728190104164, 38.26523844401042, + 36.549845377604164, 51.681559244791664, 34.02337646484375, 43.704549153645836, + 41.82739257812501, 41.706949869791664, 46.34318033854167, 34.56764729817708, + 44.23455810546874, 32.874165852864586, 46.96870930989583, 44.34065755208334, + 29.399190266927082, 34.17598470052083, 55.47621663411457, 30.839538574218754, + 41.77475992838542, 35.07790120442708, 35.81787109375001, 72.11383056640625, + 66.970947265625, 86.9696044921875, 74.93351236979169, 73.88014729817708, + 79.41554768880208, 97.35892740885416, 102.47133382161458, 77.45182291666667, + 87.77813720703125, 66.27581787109375, 64.3125, 66.29693603515625, 83.58766682942709, + 73.07511393229169, 76.015625, 69.94832356770833, 77.38962809244791, 83.38871256510417, + 66.82843017578125, 65.72416178385417, 67.26149495442709, 87.59427897135417, + 69.49810791015625, 85.29738362630208, 57.812845865885414, 79.28790283203125, + 57.90551757812501 + ], + [ + 38.559305826822914, 0.0, 36.26169840494792, 36.11899820963542, 38.30936686197917, + 30.521830240885418, 35.92903645833333, 33.462015787760414, 32.120157877604164, + 35.26397705078125, 35.17144775390625, 30.722086588541664, 32.06500244140625, + 31.89019775390625, 33.62587483723957, 33.613260904947914, 35.0267333984375, + 31.167236328125, 36.26285807291667, 36.697245279947914, 34.19944254557292, + 42.71704101562499, 37.801371256510414, 37.872355143229164, 37.92903645833333, + 32.1744384765625, 33.81746419270833, 35.513326009114586, 52.609903971354164, + 48.66343180338542, 63.69411214192709, 55.13262939453124, 53.564778645833336, + 57.7625732421875, 74.13861083984375, 78.598388671875, 57.25604248046875, + 65.81209309895833, 48.87040201822917, 48.16400146484375, 48.77974446614583, + 61.87076822916667, 52.50705973307291, 55.492451985677086, 50.11651611328125, + 56.7164306640625, 61.40793863932291, 47.43770345052083, 48.20318603515625, + 48.904866536458336, 64.28444417317708, 49.870035807291664, 62.5439453125, + 42.868855794270836, 57.52132161458333, 41.771097819010414 + ], + [ + 45.93680826822917, 36.26169840494792, 0.0, 34.886515299479164, 46.332539876302086, + 37.868001302083336, 47.64764404296875, 38.734456380208336, 36.450541178385414, + 39.39640299479167, 27.334065755208336, 44.59857177734374, 33.66158040364583, + 34.96476236979167, 36.144205729166664, 34.28523763020833, 39.489359537760414, + 33.56756591796875, 48.12717692057292, 35.796793619791664, 28.891357421875, + 53.55804443359375, 50.176798502604164, 33.214945475260414, 49.614278157552086, + 34.215677897135414, 35.30666097005208, 42.077189127604164, 42.988993326822914, + 40.97762044270833, 53.0816650390625, 46.682576497395836, 43.494242350260414, + 45.526835123697914, 59.0860595703125, 64.25689697265624, 45.319498697916664, + 53.161112467447914, 41.109151204427086, 38.91845703125, 42.62335205078125, + 51.06744384765626, 44.1038818359375, 43.321818033854164, 41.43977864583333, + 45.81199137369792, 48.0218505859375, 38.356221516927086, 36.442301432291664, + 41.04954020182292, 51.9554443359375, 42.05792236328125, 51.18145751953125, + 39.947408040364586, 45.67877197265625, 39.10432942708333 + ], + [ + 43.5384521484375, 36.11899820963542, 34.886515299479164, 0.0, 42.18809000651042, + 35.332194010416664, 42.63665771484375, 36.828857421875, 36.921854654947914, + 36.70621744791667, 36.559163411458336, 41.20513916015625, 33.755411783854164, + 34.9595947265625, 30.461140950520836, 31.794637044270836, 37.38824462890625, + 35.287862141927086, 41.90142822265625, 31.524943033854168, 29.204427083333336, + 47.06158447265625, 45.74580891927083, 38.47210693359375, 45.68947347005209, + 37.178731282552086, 37.40435791015625, 39.08882649739583, 49.59295654296875, + 45.323445638020836, 60.630371093750014, 53.270182291666664, 48.44647216796875, + 54.036112467447914, 67.82613118489583, 72.30902099609375, 51.451863606770836, + 59.05169677734376, 43.39019775390625, 45.17887369791667, 42.89809163411458, + 56.68129475911459, 48.57930501302083, 50.06490071614583, 46.54687499999999, + 51.84796142578124, 55.774251302083336, 46.51015218098959, 44.99353027343749, + 44.438130696614586, 58.985270182291664, 46.42327880859375, 59.25335693359375, + 40.84344482421876, 52.744120279947914, 40.45947265624999 + ], + [ + 35.17413330078124, 38.30936686197917, 46.332539876302086, 42.18809000651042, 0.0, + 36.64060465494792, 32.241943359375, 32.98333740234375, 36.270914713541664, + 35.032857259114586, 44.900492350260414, 32.22013346354167, 39.930318196614586, + 34.235575358072914, 36.061421712239586, 42.400370279947914, 32.6009521484375, + 39.864176432291664, 33.715576171875, 42.17555745442708, 41.330830891927086, + 35.371053059895836, 37.370015462239586, 49.4188232421875, 37.80053710937501, + 39.38704427083333, 37.522298177083336, 32.651346842447914, 64.69844563802083, + 58.91729736328125, 78.22076416015625, 67.57273356119791, 65.56917317708333, + 71.45947265625, 88.38157145182291, 93.26220703124999, 68.67132568359375, + 78.73437499999999, 58.116129557291664, 57.780253092447914, 58.251708984375, + 73.7606201171875, 64.64341227213542, 68.99367268880208, 60.34881591796875, + 69.6253662109375, 74.97206624348959, 61.392049153645836, 59.73008219401041, + 58.949544270833336, 78.91412353515625, 61.358154296875, 76.511474609375, + 52.36494954427083, 70.28120930989583, 52.61041259765625 + ], + [ + 36.49820963541667, 30.521830240885418, 37.868001302083336, 35.332194010416664, + 36.64060465494792, 0.0, 35.92572021484374, 32.657267252604164, 29.054585774739586, + 33.0281982421875, 38.55826822916667, 30.19679768880208, 35.717000325520836, + 36.4127197265625, 33.52779134114583, 38.328898111979164, 33.089090983072914, + 34.569356282552086, 32.67417399088542, 36.098592122395836, 32.13846842447917, + 39.02325439453125, 36.151407877604164, 39.93109130859375, 34.11944580078125, + 32.630269368489586, 31.96734619140625, 34.53080240885416, 54.771464029947914, + 51.4417724609375, 69.14851888020833, 59.0382080078125, 56.050313313802086, + 62.74652099609376, 79.08866373697917, 84.38332112630208, 60.35575358072917, + 70.82033284505209, 51.844258626302086, 50.1295166015625, 52.32326253255209, + 66.72357177734375, 55.0386962890625, 58.364664713541664, 54.227742513020836, + 61.14764404296875, 66.0185546875, 51.72955322265625, 50.98746744791668, 51.65224202473959, + 68.86637369791666, 53.87428792317708, 67.17860921223958, 43.89247639973958, + 61.954203287760414, 43.745890299479164 + ], + [ + 27.312683105468746, 35.92903645833333, 47.64764404296875, 42.63665771484375, + 32.241943359375, 35.92572021484374, 0.0, 34.964375813802086, 36.2220458984375, + 36.651590983072914, 50.32550048828125, 32.59549967447917, 41.012349446614586, + 39.126444498697914, 39.44651285807292, 44.392801920572914, 31.82666015625, + 41.314982096354164, 33.031209309895836, 45.26491292317708, 42.56626383463542, + 29.142049153645832, 31.701395670572918, 54.212646484375, 35.0169677734375, + 41.111287434895836, 32.562581380208336, 33.473653157552086, 71.13297526041667, + 64.21368408203125, 85.76027425130209, 74.08616129557291, 72.09757486979167, + 78.93660481770833, 96.49818929036458, 101.493896484375, 75.92864990234375, + 86.38484700520833, 64.19441731770833, 63.25250244140624, 63.920084635416664, + 81.97115071614583, 71.76536051432292, 75.07025146484376, 68.12009684244792, + 75.9593505859375, 82.61212158203125, 66.23848470052084, 65.28521728515625, + 65.33874511718749, 86.63417561848958, 67.8555908203125, 84.046630859375, + 55.862955729166664, 77.87931315104167, 56.32220458984375 + ], + [ + 36.554728190104164, 33.462015787760414, 38.734456380208336, 36.828857421875, + 32.98333740234375, 32.657267252604164, 34.964375813802086, 0.0, 33.10601806640625, + 34.13114420572917, 38.642985026041664, 32.13820393880208, 32.17529296875, + 33.294881184895836, 34.95751953125, 38.129353841145836, 29.426737467447918, + 33.63267008463542, 35.956685384114586, 38.509562174479164, 35.371826171875, + 36.468485514322914, 33.56815592447917, 41.414449055989586, 37.57415771484375, + 31.496236165364586, 32.805440266927086, 34.2606201171875, 56.18023681640625, + 53.24788411458333, 70.29101562499999, 58.3436279296875, 58.445414225260414, + 64.85007731119792, 80.50423177083334, 86.10902913411458, 62.282755533854164, + 72.06166585286458, 51.812032063802086, 50.377197265625, 52.659769694010414, + 67.93288167317708, 56.21586100260416, 61.5576171875, 55.0302734375, 61.68267822265625, + 67.78629557291666, 52.202128092447914, 51.63586425781251, 52.912455240885414, + 70.70849609375, 55.12176513671876, 69.04909261067709, 46.278299967447914, + 62.970723470052086, 46.828450520833336 + ], + [ + 38.26523844401042, 32.120157877604164, 36.450541178385414, 36.921854654947914, + 36.270914713541664, 29.054585774739586, 36.2220458984375, 33.10601806640625, 0.0, + 31.295430501302082, 33.177876790364586, 32.107950846354164, 34.28489176432292, + 33.003560384114586, 31.274393717447914, 34.44407145182291, 32.987101236979164, + 32.785603841145836, 34.425374348958336, 33.24928792317708, 31.833435058593743, + 40.97546386718749, 38.759908040364586, 40.142049153645836, 38.1375732421875, + 30.083048502604168, 31.76200358072917, 33.98996988932292, 51.46850585937501, + 45.83685302734376, 64.29555257161459, 51.861470540364586, 51.81424967447917, + 58.67708333333334, 74.30942789713542, 79.55362955729166, 55.717061360677086, + 66.08194986979167, 46.7060546875, 45.92710367838542, 48.406697591145836, + 61.72347005208334, 51.20989990234375, 54.88429768880208, 50.368021647135414, + 56.36279296875001, 61.41241455078125, 46.521321614583336, 45.740336100260414, + 49.62190755208333, 64.91151936848958, 47.814493815104164, 61.163818359375, + 41.330281575520836, 57.11918131510417, 41.36513264973958 + ], + [ + 36.549845377604164, 35.26397705078125, 39.39640299479167, 36.70621744791667, + 35.032857259114586, 33.0281982421875, 36.651590983072914, 34.13114420572917, + 31.295430501302082, 0.0, 39.358072916666664, 34.34295654296875, 37.203816731770836, + 37.30729166666667, 32.200032552083336, 38.24682617187499, 33.15675862630208, + 33.51059977213542, 35.16977945963542, 33.53287760416667, 36.16544596354167, + 37.98443603515625, 38.09033203125, 44.51926676432292, 37.974751790364586, + 33.71795654296875, 32.452412923177086, 29.498168945312496, 55.54376220703125, + 52.353312174479164, 69.27551269531249, 59.07706705729166, 55.79229736328126, + 63.93918863932292, 79.413330078125, 84.68654378255208, 61.63126627604167, + 71.27109781901041, 51.71453857421874, 49.376912434895836, 51.22760009765626, + 65.52142333984375, 56.04915364583333, 59.21516927083333, 54.6220703125, 60.87847900390625, + 65.8699951171875, 52.61627197265625, 51.17586263020833, 54.107442220052086, + 70.01371256510417, 53.398213704427086, 67.64512125651041, 44.82309977213542, + 62.829325358072914, 45.482381184895836 + ], + [ + 51.681559244791664, 35.17144775390625, 27.334065755208336, 36.559163411458336, + 44.900492350260414, 38.55826822916667, 50.32550048828125, 38.642985026041664, + 33.177876790364586, 39.358072916666664, 0.0, 45.17218017578125, 32.34411621093751, + 31.563680013020832, 34.715901692708336, 27.839274088541668, 40.18113199869792, + 32.677469889322914, 48.16237386067709, 32.7635498046875, 28.154174804687496, + 54.322652180989586, 51.73360188802082, 32.376932779947914, 51.158426920572914, + 30.823832194010418, 36.75868733723958, 41.20076497395833, 39.734517415364586, + 38.612019856770836, 48.978352864583336, 42.62381998697917, 39.76979573567708, + 44.419576009114586, 55.500813802083336, 60.538309733072914, 43.155192057291664, + 49.621602376302086, 37.543070475260414, 38.017171223958336, 40.54681396484375, + 47.358744303385414, 40.13716634114583, 41.73612467447917, 39.16670735677083, + 42.90940348307292, 45.59623209635417, 36.63063557942708, 36.1629638671875, + 40.60117594401042, 48.465372721354164, 38.882670084635414, 47.18487548828125, + 38.07318115234375, 44.08262125651042, 38.53434244791667 + ], + [ + 34.02337646484375, 30.722086588541664, 44.59857177734374, 41.20513916015625, + 32.22013346354167, 30.19679768880208, 32.59549967447917, 32.13820393880208, + 32.107950846354164, 34.34295654296875, 45.17218017578125, 0.0, 38.79099527994791, + 38.99265543619792, 36.189839680989586, 41.96071370442708, 32.65283203124999, + 38.5255126953125, 28.454427083333336, 38.979146321614586, 38.71380615234375, + 34.631144205729164, 28.254903157552082, 46.05997721354167, 29.962483723958336, + 36.282430013020836, 32.454915364583336, 32.82537841796875, 64.33341471354166, + 58.70522054036458, 78.91326904296875, 67.04351806640625, 65.21488444010417, + 71.05887858072917, 89.52288818359375, 94.5843505859375, 69.99131266276042, + 79.99829101562499, 58.86267089843749, 57.22532145182292, 58.81624348958333, + 75.22509765625, 64.31797281901041, 68.44765218098958, 62.01906331380209, + 69.46415201822916, 75.44142659505209, 59.72106933593751, 59.09889729817708, + 58.34716796875, 79.74733479817708, 60.97139485677083, 76.96907552083334, + 51.14786783854167, 71.241455078125, 49.562520345052086 + ], + [ + 43.704549153645836, 32.06500244140625, 33.66158040364583, 33.755411783854164, + 39.930318196614586, 35.717000325520836, 41.012349446614586, 32.17529296875, + 34.28489176432292, 37.203816731770836, 32.34411621093751, 38.79099527994791, 0.0, + 30.511881510416664, 32.717936197916664, 32.071044921875, 32.627909342447914, + 29.439880371093746, 40.078104654947914, 33.519246419270836, 29.895792643229164, + 46.06300862630208, 42.05753580729167, 35.49269612630208, 43.76625569661458, + 34.165751139322914, 34.19374593098958, 36.20947265625, 46.54010009765626, 43.456298828125, + 59.5826416015625, 50.225504557291664, 48.209126790364586, 53.35968017578126, + 67.21158854166667, 72.39548746744792, 49.788004557291664, 58.148783365885414, + 42.021870930989586, 41.72444661458333, 42.32208251953125, 55.59299723307292, + 48.005411783854164, 50.6915283203125, 43.19112141927083, 50.408793131510414, + 55.7652587890625, 43.23988850911459, 42.849446614583336, 42.78175862630208, + 59.42647298177083, 45.226826985677086, 58.416524251302086, 39.78098551432292, + 52.10748291015624, 39.715738932291664 + ], + [ + 41.82739257812501, 31.89019775390625, 34.96476236979167, 34.9595947265625, + 34.235575358072914, 36.4127197265625, 39.126444498697914, 33.294881184895836, + 33.003560384114586, 37.30729166666667, 31.563680013020832, 38.99265543619792, + 30.511881510416664, 0.0, 30.048990885416664, 32.394734700520836, 32.285054524739586, + 32.42881266276042, 41.84128824869792, 36.49983723958333, 32.32828776041667, + 43.62058512369792, 41.50040690104167, 36.622538248697914, 43.86029052734375, + 34.375834147135414, 34.87408447265624, 33.9193115234375, 49.08140055338542, + 44.3067626953125, 60.58410644531249, 50.39758300781251, 49.380594889322914, + 54.05621337890624, 68.78438313802083, 73.07769775390625, 51.939534505208336, + 59.76409912109375, 43.083964029947914, 44.52693684895833, 45.461690266927086, + 56.809916178385414, 49.85380045572916, 52.746012369791664, 45.15889485677083, + 52.23468017578125, 56.82698567708333, 44.25303141276042, 44.41072591145833, + 45.907694498697914, 60.067952473958336, 46.91668701171876, 59.002217610677086, + 43.57700602213542, 52.15081787109374, 41.75573730468749 + ], + [ + 41.706949869791664, 33.62587483723957, 36.144205729166664, 30.461140950520836, + 36.061421712239586, 33.52779134114583, 39.44651285807292, 34.95751953125, + 31.274393717447914, 32.200032552083336, 34.715901692708336, 36.189839680989586, + 32.717936197916664, 30.048990885416664, 0.0, 33.274820963541664, 33.88140869140625, + 33.17246500651042, 37.11309814453125, 24.3648681640625, 31.140096028645832, + 44.14959716796875, 41.35961914062501, 38.00396728515625, 41.14959716796874, + 31.882954915364586, 29.59726969401042, 34.53889973958333, 49.050272623697914, + 44.542277018229164, 61.21638997395833, 51.911946614583336, 50.16815185546875, + 55.50506591796875, 70.36385091145834, 75.10764567057292, 53.33447265625001, + 61.88441975911458, 44.36676025390624, 44.223795572916664, 44.17279052734375, + 58.45371500651042, 47.75032552083333, 51.186360677083336, 46.339640299479164, + 53.534159342447914, 56.72306315104167, 45.676981608072914, 46.231974283854164, + 46.741231282552086, 61.3125, 46.679219563802086, 60.14483642578125, 39.546895345052086, + 54.92336018880208, 41.60437011718749 + ], + [ + 46.34318033854167, 33.613260904947914, 34.28523763020833, 31.794637044270836, + 42.400370279947914, 38.328898111979164, 44.392801920572914, 38.129353841145836, + 34.44407145182291, 38.24682617187499, 27.839274088541668, 41.96071370442708, + 32.071044921875, 32.394734700520836, 33.274820963541664, 0.0, 38.85699462890625, + 34.11541748046875, 42.33164469401042, 33.719401041666664, 30.825642903645832, + 49.52695719401042, 47.56498209635417, 36.640116373697914, 45.187723795572914, + 33.449849446614586, 35.66021728515625, 38.8372802734375, 45.893819173177086, + 40.99239095052083, 55.14892578125001, 47.98726399739583, 46.400044759114586, + 51.19850667317708, 63.51171875, 68.11916097005209, 49.142985026041664, 56.00266520182292, + 43.345235188802086, 43.15531412760417, 43.61558024088542, 54.109842936197914, + 46.05362955729167, 48.25179036458333, 43.880615234375, 49.32175699869792, + 52.30570475260417, 42.59519449869792, 43.527872721354164, 44.599100748697914, + 54.15722656249999, 43.19647216796876, 54.321309407552086, 40.38787841796875, + 50.01788330078125, 41.98714192708333 + ], + [ + 34.56764729817708, 35.0267333984375, 39.489359537760414, 37.38824462890625, + 32.6009521484375, 33.089090983072914, 31.82666015625, 29.426737467447918, + 32.987101236979164, 33.15675862630208, 40.18113199869792, 32.65283203124999, + 32.627909342447914, 32.285054524739586, 33.88140869140625, 38.85699462890625, 0.0, + 34.16418457031249, 34.156778971354164, 35.579325358072914, 33.82875569661458, + 35.064127604166664, 32.93996175130208, 40.0826416015625, 36.326904296875, + 33.934041341145836, 31.360392252604168, 30.273742675781246, 57.0501708984375, + 52.32749430338542, 71.46946207682294, 60.29380289713542, 58.984700520833336, + 65.36478678385417, 82.00722249348959, 87.06388346354167, 62.19004313151042, + 71.95288085937501, 52.443644205729164, 50.703592936197914, 53.025716145833336, + 68.20125325520833, 58.878560384114586, 62.34783935546875, 55.40753173828125, + 62.70267740885417, 68.83087158203125, 54.434244791666664, 52.39919026692708, + 52.902669270833336, 72.19960530598959, 54.980550130208336, 69.88659667968749, + 47.480183919270836, 63.86279296875, 46.55206298828126 + ], + [ + 44.23455810546874, 31.167236328125, 33.56756591796875, 35.287862141927086, + 39.864176432291664, 34.569356282552086, 41.314982096354164, 33.63267008463542, + 32.785603841145836, 33.51059977213542, 32.677469889322914, 38.5255126953125, + 29.439880371093746, 32.42881266276042, 33.17246500651042, 34.11541748046875, + 34.16418457031249, 0.0, 40.642903645833336, 34.93516031901042, 31.825378417968746, + 45.938273111979164, 41.223286946614586, 35.4906005859375, 42.834187825520836, + 31.91719563802083, 34.007527669270836, 34.721089680989586, 43.38350423177083, + 43.499409993489586, 56.715108235677086, 49.09670003255208, 45.854410807291664, + 53.00048828125, 67.12705485026042, 72.5589599609375, 49.04172770182293, 58.46504720052083, + 42.22412109375, 42.89023844401042, 41.452921549479164, 54.227132161458336, + 46.835184733072914, 50.14394124348959, 43.522440592447914, 47.85839843750001, + 55.49782307942708, 43.657389322916664, 37.792948404947914, 44.3724365234375, + 58.20855712890625, 45.215779622395836, 56.164713541666664, 39.033406575520836, + 50.58121744791667, 40.46429443359375 + ], + [ + 32.874165852864586, 36.26285807291667, 48.12717692057292, 41.90142822265625, + 33.715576171875, 32.67417399088542, 33.031209309895836, 35.956685384114586, + 34.425374348958336, 35.16977945963542, 48.16237386067709, 28.454427083333336, + 40.078104654947914, 41.84128824869792, 37.11309814453125, 42.33164469401042, + 34.156778971354164, 40.642903645833336, 0.0, 42.245707194010414, 41.13360595703125, + 33.14599609375, 34.936665852864586, 50.321451822916664, 26.453165690104168, + 38.066813151041664, 34.251546223958336, 33.753804524739586, 67.58951822916667, + 61.41562906901042, 81.68076578776042, 69.82464599609375, 68.4075927734375, + 74.9713134765625, 92.51812744140625, 97.5799560546875, 72.08839925130208, + 82.33882649739584, 61.13309733072916, 58.78082275390625, 60.86250813802084, + 78.199951171875, 66.88348388671875, 71.37078857421875, 64.82855224609375, + 72.9293212890625, 78.77199300130208, 62.04500325520833, 62.44488525390625, + 60.505818684895836, 82.99110921223958, 63.95552571614583, 80.44917805989583, + 52.905721028645836, 73.82588704427083, 53.36216227213542 + ], + [ + 46.96870930989583, 36.697245279947914, 35.796793619791664, 31.524943033854168, + 42.17555745442708, 36.098592122395836, 45.26491292317708, 38.509562174479164, + 33.24928792317708, 33.53287760416667, 32.7635498046875, 38.979146321614586, + 33.519246419270836, 36.49983723958333, 24.3648681640625, 33.719401041666664, + 35.579325358072914, 34.93516031901042, 42.245707194010414, 0.0, 30.850423177083332, + 49.81687418619791, 46.30517578125, 35.744038899739586, 46.357889811197914, + 32.761983235677086, 33.753804524739586, 36.9644775390625, 45.36541748046875, + 41.876749674479164, 55.567057291666664, 48.123331705729164, 46.42364501953125, + 50.43927001953126, 63.491943359375, 68.58774820963541, 48.54003906249999, + 56.98341878255208, 41.67193603515625, 41.005940755208336, 42.14385986328125, + 53.78704833984374, 43.700032552083336, 45.91149902343749, 44.24210611979167, + 48.97296142578126, 49.75488281250001, 42.176534016927086, 43.020345052083336, + 44.694844563802086, 55.639119466145836, 42.76153564453126, 54.52394612630208, + 38.144673665364586, 50.77284749348959, 41.11376953125 + ], + [ + 44.34065755208334, 34.19944254557292, 28.891357421875, 29.204427083333336, + 41.330830891927086, 32.13846842447917, 42.56626383463542, 35.371826171875, + 31.833435058593743, 36.16544596354167, 28.154174804687496, 38.71380615234375, + 29.895792643229164, 32.32828776041667, 31.140096028645832, 30.825642903645832, + 33.82875569661458, 31.825378417968746, 41.13360595703125, 30.850423177083332, 0.0, + 47.14638264973959, 43.818888346354164, 33.96099853515625, 44.17535400390625, + 28.420186360677082, 31.140889485677082, 36.68509928385416, 44.96632893880208, + 42.1646728515625, 56.797403971354164, 47.356974283854164, 44.44891357421874, + 49.48541259765625, 64.87760416666667, 70.19529215494792, 48.274210611979164, + 57.56842041015625, 41.62599690755208, 40.576416015625, 43.031107584635414, + 53.58538818359375, 45.8658447265625, 48.00939941406249, 44.07421875, 48.22585042317708, + 52.21024576822917, 41.651265462239586, 41.118733723958336, 42.53582763671876, + 56.510498046875, 41.89308675130208, 55.16937255859374, 39.06064860026042, + 50.520121256510414, 36.4952392578125 + ], + [ + 29.399190266927082, 42.71704101562499, 53.55804443359375, 47.06158447265625, + 35.371053059895836, 39.02325439453125, 29.142049153645832, 36.468485514322914, + 40.97546386718749, 37.98443603515625, 54.322652180989586, 34.631144205729164, + 46.06300862630208, 43.62058512369792, 44.14959716796875, 49.52695719401042, + 35.064127604166664, 45.938273111979164, 33.14599609375, 49.81687418619791, + 47.14638264973959, 0.0, 30.63995361328125, 59.319661458333336, 30.535196940104164, + 42.187093098958336, 32.66084798177083, 31.808573404947918, 75.793212890625, + 70.18650309244792, 91.60732014973959, 78.68137613932292, 77.81949869791666, + 85.1016845703125, 102.75876871744792, 108.00260416666667, 81.71942138671875, + 92.60811360677083, 68.286376953125, 68.48996988932291, 69.59785970052083, + 88.10982259114583, 76.92946370442709, 80.87762451171875, 73.91900634765625, + 82.11588541666666, 88.78000895182291, 71.68339029947916, 70.00860595703125, + 71.25785319010416, 92.59560139973959, 73.38387044270833, 89.8748779296875, + 60.45483398437501, 83.58675130208333, 61.663920084635414 + ], + [ + 34.17598470052083, 37.801371256510414, 50.176798502604164, 45.74580891927083, + 37.370015462239586, 36.151407877604164, 31.701395670572918, 33.56815592447917, + 38.759908040364586, 38.09033203125, 51.73360188802082, 28.254903157552082, + 42.05753580729167, 41.50040690104167, 41.35961914062501, 47.56498209635417, + 32.93996175130208, 41.223286946614586, 34.936665852864586, 46.30517578125, + 43.818888346354164, 30.63995361328125, 0.0, 54.902933756510414, 30.710225423177086, + 39.018900553385414, 32.39556884765624, 32.4981689453125, 71.68674723307291, + 67.06502278645833, 87.86173502604166, 74.87109375, 73.82285563151042, 81.49131266276042, + 99.51029459635416, 104.87379964192709, 78.13138834635417, 89.53033447265626, + 65.08518473307292, 64.30192057291667, 65.91709391276041, 84.46242268880208, + 72.42529296875, 77.603271484375, 69.79772949218751, 78.00453694661456, 85.1429443359375, + 68.11305745442709, 65.85164388020834, 67.68039957682291, 89.096923828125, + 69.03981526692709, 86.16656494140625, 57.28037516276041, 79.47589111328125, + 57.68489583333333 + ], + [ + 55.47621663411457, 37.872355143229164, 33.214945475260414, 38.47210693359375, + 49.4188232421875, 39.93109130859375, 54.212646484375, 41.414449055989586, + 40.142049153645836, 44.51926676432292, 32.376932779947914, 46.05997721354167, + 35.49269612630208, 36.622538248697914, 38.00396728515625, 36.640116373697914, + 40.0826416015625, 35.4906005859375, 50.321451822916664, 35.744038899739586, + 33.96099853515625, 59.319661458333336, 54.902933756510414, 0.0, 53.888712565104164, + 37.797810872395836, 41.620157877604164, 43.662333170572914, 40.25602213541667, + 38.23960367838542, 47.67388916015625, 43.58294677734374, 39.14949544270833, + 40.67578125000001, 53.719258626302086, 58.9322509765625, 41.99017333984374, + 46.8433837890625, 39.719767252604164, 38.55442301432292, 41.280476888020836, + 46.70031738281251, 39.612162272135414, 41.90374755859375, 37.94529215494792, + 41.15970865885417, 44.865580240885414, 38.7596435546875, 37.12314860026042, + 34.310587565104164, 48.288431803385414, 39.77587890625, 46.372477213541664, + 41.649658203125, 41.318562825520836, 38.171610514322914 + ], + [ + 30.839538574218754, 37.92903645833333, 49.614278157552086, 45.68947347005209, + 37.80053710937501, 34.11944580078125, 35.0169677734375, 37.57415771484375, + 38.1375732421875, 37.974751790364586, 51.158426920572914, 29.962483723958336, + 43.76625569661458, 43.86029052734375, 41.14959716796874, 45.187723795572914, + 36.326904296875, 42.834187825520836, 26.453165690104168, 46.357889811197914, + 44.17535400390625, 30.535196940104164, 30.710225423177086, 53.888712565104164, 0.0, + 38.169840494791664, 34.16784667968749, 32.621683756510414, 71.35009765625, + 66.23219807942708, 86.45062255859375, 73.96934000651042, 73.32861328124999, + 79.5765380859375, 97.81752522786458, 102.96162923177084, 77.45302327473958, + 87.73811848958333, 65.35555013020833, 64.74713134765625, 65.1314697265625, + 83.54756673177084, 72.22711181640626, 76.36391194661458, 68.94138590494792, + 77.48266601562499, 83.96156819661459, 67.3680419921875, 65.46661376953125, + 66.60648600260416, 87.79083251953125, 68.52461751302084, 85.17138671875, + 55.98811848958333, 79.12483723958333, 57.85032145182291 + ], + [ + 41.77475992838542, 32.1744384765625, 34.215677897135414, 37.178731282552086, + 39.38704427083333, 32.630269368489586, 41.111287434895836, 31.496236165364586, + 30.083048502604168, 33.71795654296875, 30.823832194010418, 36.282430013020836, + 34.165751139322914, 34.375834147135414, 31.882954915364586, 33.449849446614586, + 33.934041341145836, 31.91719563802083, 38.066813151041664, 32.761983235677086, + 28.420186360677082, 42.187093098958336, 39.018900553385414, 37.797810872395836, + 38.169840494791664, 0.0, 30.98872884114583, 34.065083821614586, 49.0931396484375, + 46.715922037760414, 60.299173990885414, 51.16758219401042, 51.22668457031251, + 56.5906982421875, 71.02052815755208, 76.45414225260416, 54.76991780598959, + 64.41365559895834, 46.53828938802083, 43.63783772786458, 48.144002278645836, + 59.86104329427084, 50.09991455078125, 53.53387451171875, 48.99884033203125, + 54.11258951822917, 59.235249837239586, 45.41739908854167, 45.09405517578125, + 49.55387369791666, 61.88494873046875, 48.03865559895833, 60.421712239583336, + 41.90966796875, 56.258097330729164, 42.645894368489586 + ], + [ + 35.07790120442708, 33.81746419270833, 35.30666097005208, 37.40435791015625, + 37.522298177083336, 31.96734619140625, 32.562581380208336, 32.805440266927086, + 31.76200358072917, 32.452412923177086, 36.75868733723958, 32.454915364583336, + 34.19374593098958, 34.87408447265624, 29.59726969401042, 35.66021728515625, + 31.360392252604168, 34.007527669270836, 34.251546223958336, 33.753804524739586, + 31.140889485677082, 32.66084798177083, 32.39556884765624, 41.620157877604164, + 34.16784667968749, 30.98872884114583, 0.0, 29.149556477864582, 56.43607584635417, + 52.584370930989586, 71.15541585286459, 60.13267008463542, 57.836832682291664, + 64.68164062500001, 81.23691813151041, 86.43379720052083, 61.97479248046874, + 72.08931477864583, 51.73486328125, 51.164164225260414, 53.491617838541664, + 68.30135091145834, 58.10614013671875, 60.80893961588542, 55.58579508463542, + 62.3670654296875, 67.36016845703125, 52.323323567708336, 51.73366292317708, + 54.045043945312514, 71.81479899088542, 55.244181315104164, 69.78666178385417, + 46.760579427083336, 64.2587890625, 46.87078857421876 + ], + [ + 35.81787109375001, 35.513326009114586, 42.077189127604164, 39.08882649739583, + 32.651346842447914, 34.53080240885416, 33.473653157552086, 34.2606201171875, + 33.98996988932292, 29.498168945312496, 41.20076497395833, 32.82537841796875, + 36.20947265625, 33.9193115234375, 34.53889973958333, 38.8372802734375, 30.273742675781246, + 34.721089680989586, 33.753804524739586, 36.9644775390625, 36.68509928385416, + 31.808573404947918, 32.4981689453125, 43.662333170572914, 32.621683756510414, + 34.065083821614586, 29.149556477864582, 0.0, 59.69036865234375, 53.793294270833336, + 73.42549641927084, 62.59570312500001, 60.19451904296875, 66.92852783203125, + 83.668212890625, 88.60093180338542, 64.00362141927083, 74.03525797526042, + 53.643208821614586, 53.540242513020836, 53.44399007161458, 69.55080159505208, + 60.448445638020836, 64.15079752604166, 56.718017578125, 64.10036214192708, + 70.47029622395833, 56.50315348307291, 54.21948242187501, 55.92356363932292, + 74.31180826822916, 57.02410888671874, 72.16440836588542, 47.74582926432292, + 65.93902587890626, 48.50162760416667 + ], + [ + 72.11383056640625, 52.609903971354164, 42.988993326822914, 49.59295654296875, + 64.69844563802083, 54.771464029947914, 71.13297526041667, 56.18023681640625, + 51.46850585937501, 55.54376220703125, 39.734517415364586, 64.33341471354166, + 46.54010009765626, 49.08140055338542, 49.050272623697914, 45.893819173177086, + 57.0501708984375, 43.38350423177083, 67.58951822916667, 45.36541748046875, + 44.96632893880208, 75.793212890625, 71.68674723307291, 40.25602213541667, 71.35009765625, + 49.0931396484375, 56.43607584635417, 59.69036865234375, 0.0, 33.039164225260414, + 35.33819580078125, 32.47239176432291, 29.81013997395833, 33.94921875, 38.41107177734375, + 42.802815755208336, 34.013448079427086, 37.33500162760417, 35.138916015625, + 34.91766357421875, 35.2674560546875, 35.297403971354164, 33.36383056640625, + 30.64931233723959, 32.394185384114586, 31.582071940104168, 33.23610432942708, + 33.3050537109375, 31.155537923177086, 37.514607747395836, 29.586893717447918, + 32.9400634765625, 34.896158854166664, 40.124471028645836, 34.26379394531249, + 38.43829345703125 + ], + [ + 66.970947265625, 48.66343180338542, 40.97762044270833, 45.323445638020836, + 58.91729736328125, 51.4417724609375, 64.21368408203125, 53.24788411458333, + 45.83685302734376, 52.353312174479164, 38.612019856770836, 58.70522054036458, + 43.456298828125, 44.3067626953125, 44.542277018229164, 40.99239095052083, + 52.32749430338542, 43.499409993489586, 61.41562906901042, 41.876749674479164, + 42.1646728515625, 70.18650309244792, 67.06502278645833, 38.23960367838542, + 66.23219807942708, 46.715922037760414, 52.584370930989586, 53.793294270833336, + 33.039164225260414, 0.0, 38.273640950520836, 36.14510091145833, 30.239278157552082, + 35.289774576822914, 43.022501627604164, 46.595845540364586, 34.48307291666667, + 37.51593017578125, 33.74953206380208, 30.991373697916668, 34.746439615885414, + 37.04473876953125, 34.4114990234375, 31.344319661458336, 32.2308349609375, + 35.562154134114586, 34.459716796875, 33.272359212239586, 34.8402099609375, + 34.00657145182292, 38.162801106770836, 29.612284342447918, 35.68292236328125, + 37.467142740885414, 35.00136311848958, 35.524698893229164 + ], + [ + 86.9696044921875, 63.69411214192709, 53.0816650390625, 60.630371093750014, + 78.22076416015625, 69.14851888020833, 85.76027425130209, 70.29101562499999, + 64.29555257161459, 69.27551269531249, 48.978352864583336, 78.91326904296875, + 59.5826416015625, 60.58410644531249, 61.21638997395833, 55.14892578125001, + 71.46946207682294, 56.715108235677086, 81.68076578776042, 55.567057291666664, + 56.797403971354164, 91.60732014973959, 87.86173502604166, 47.67388916015625, + 86.45062255859375, 60.299173990885414, 71.15541585286459, 73.42549641927084, + 35.33819580078125, 38.273640950520836, 0.0, 35.1629638671875, 36.29404703776042, + 35.246724446614586, 27.394205729166668, 30.727844238281254, 34.42655436197917, + 33.74794514973958, 42.196797688802086, 38.94002278645833, 43.60272216796876, + 35.89227294921875, 35.506388346354164, 33.43461100260417, 39.029947916666664, + 36.709615071614586, 31.36181640625, 35.591776529947914, 38.53515624999999, + 43.60048421223958, 29.126017252604168, 36.913350423177086, 25.662089029947914, + 48.12261962890625, 32.96063232421875, 49.229736328125 + ], + [ + 74.93351236979169, 55.13262939453124, 46.682576497395836, 53.270182291666664, + 67.57273356119791, 59.0382080078125, 74.08616129557291, 58.3436279296875, + 51.861470540364586, 59.07706705729166, 42.62381998697917, 67.04351806640625, + 50.225504557291664, 50.39758300781251, 51.911946614583336, 47.98726399739583, + 60.29380289713542, 49.09670003255208, 69.82464599609375, 48.123331705729164, + 47.356974283854164, 78.68137613932292, 74.87109375, 43.58294677734374, 73.96934000651042, + 51.16758219401042, 60.13267008463542, 62.59570312500001, 32.47239176432291, + 36.14510091145833, 35.1629638671875, 0.0, 35.16510009765625, 32.691385904947914, + 38.989705403645836, 41.676411946614586, 35.0555419921875, 39.040913899739586, + 35.89304606119792, 37.337239583333336, 40.22125244140625, 35.898295084635414, + 32.14619954427083, 34.9779052734375, 37.306640625, 35.34425862630208, 34.86368815104167, + 30.66058349609375, 35.07820638020833, 41.25819905598958, 33.232747395833336, + 34.335225423177086, 31.68182373046875, 42.25067138671875, 33.61053466796875, + 40.9339599609375 + ], + [ + 73.88014729817708, 53.564778645833336, 43.494242350260414, 48.44647216796875, + 65.56917317708333, 56.050313313802086, 72.09757486979167, 58.445414225260414, + 51.81424967447917, 55.79229736328126, 39.76979573567708, 65.21488444010417, + 48.209126790364586, 49.380594889322914, 50.16815185546875, 46.400044759114586, + 58.984700520833336, 45.854410807291664, 68.4075927734375, 46.42364501953125, + 44.44891357421874, 77.81949869791666, 73.82285563151042, 39.14949544270833, + 73.32861328124999, 51.22668457031251, 57.836832682291664, 60.19451904296875, + 29.81013997395833, 30.239278157552082, 36.29404703776042, 35.16510009765625, 0.0, + 32.883544921875, 37.939229329427086, 41.82820638020833, 33.461039225260414, + 35.78771972656249, 35.17073567708333, 32.721171061197914, 34.34993489583333, + 31.120564778645836, 32.960957845052086, 32.301859537760414, 31.68080647786459, + 29.695719401041668, 32.748921712239586, 34.1715087890625, 31.62908935546875, + 36.136759440104164, 35.17022705078125, 32.948649088541664, 35.1724853515625, + 38.424560546875, 33.515421549479164, 34.60614013671874 + ], + [ + 79.41554768880208, 57.7625732421875, 45.526835123697914, 54.036112467447914, + 71.45947265625, 62.74652099609376, 78.93660481770833, 64.85007731119792, + 58.67708333333334, 63.93918863932292, 44.419576009114586, 71.05887858072917, + 53.35968017578126, 54.05621337890624, 55.50506591796875, 51.19850667317708, + 65.36478678385417, 53.00048828125, 74.9713134765625, 50.43927001953126, 49.48541259765625, + 85.1016845703125, 81.49131266276042, 40.67578125000001, 79.5765380859375, + 56.5906982421875, 64.68164062500001, 66.92852783203125, 33.94921875, 35.289774576822914, + 35.246724446614586, 32.691385904947914, 32.883544921875, 0.0, 34.053731282552086, + 37.574055989583336, 33.428934733072914, 33.949991861979164, 38.0577392578125, + 37.36098225911458, 39.3798828125, 31.535685221354164, 33.249125162760414, + 33.84328206380208, 35.402811686197914, 30.604288736979164, 31.53159586588542, + 34.8922119140625, 33.68202718098958, 34.20735677083333, 34.02764892578125, 33.68212890625, + 34.20284016927084, 45.9046630859375, 32.86983235677083, 38.07391357421874 + ], + [ + 97.35892740885416, 74.13861083984375, 59.0860595703125, 67.82613118489583, + 88.38157145182291, 79.08866373697917, 96.49818929036458, 80.50423177083334, + 74.30942789713542, 79.413330078125, 55.500813802083336, 89.52288818359375, + 67.21158854166667, 68.78438313802083, 70.36385091145834, 63.51171875, 82.00722249348959, + 67.12705485026042, 92.51812744140625, 63.491943359375, 64.87760416666667, + 102.75876871744792, 99.51029459635416, 53.719258626302086, 97.81752522786458, + 71.02052815755208, 81.23691813151041, 83.668212890625, 38.41107177734375, + 43.022501627604164, 27.394205729166668, 38.989705403645836, 37.939229329427086, + 34.053731282552086, 0.0, 21.95041910807292, 36.78959147135417, 33.301859537760414, + 46.10504150390625, 43.96919759114583, 47.82358805338541, 35.098368326822914, + 39.062906901041664, 35.538289388020836, 42.370768229166664, 37.06854248046875, + 30.468098958333332, 39.68719482421875, 43.096842447916664, 44.40679931640625, + 30.429199218749996, 40.89508056640624, 30.875752766927086, 55.633687337239586, + 36.647196451822914, 54.8240966796875 + ], + [ + 102.47133382161458, 78.598388671875, 64.25689697265624, 72.30902099609375, + 93.26220703124999, 84.38332112630208, 101.493896484375, 86.10902913411458, + 79.55362955729166, 84.68654378255208, 60.538309733072914, 94.5843505859375, + 72.39548746744792, 73.07769775390625, 75.10764567057292, 68.11916097005209, + 87.06388346354167, 72.5589599609375, 97.5799560546875, 68.58774820963541, + 70.19529215494792, 108.00260416666667, 104.87379964192709, 58.9322509765625, + 102.96162923177084, 76.45414225260416, 86.43379720052083, 88.60093180338542, + 42.802815755208336, 46.595845540364586, 30.727844238281254, 41.676411946614586, + 41.82820638020833, 37.574055989583336, 21.95041910807292, 0.0, 40.045145670572914, + 34.199422200520836, 50.11751302083334, 49.69691975911458, 51.02530924479167, 37.5625, + 43.223246256510414, 39.242411295572914, 45.90456136067708, 40.50671386718751, + 33.60866292317708, 45.789021809895836, 48.186014811197914, 48.28511555989583, + 30.20672607421875, 44.74462890625, 34.5582275390625, 59.74092610677084, 40.1729736328125, + 58.78151448567708 + ], + [ + 77.45182291666667, 57.25604248046875, 45.319498697916664, 51.451863606770836, + 68.67132568359375, 60.35575358072917, 75.92864990234375, 62.282755533854164, + 55.717061360677086, 61.63126627604167, 43.155192057291664, 69.99131266276042, + 49.788004557291664, 51.939534505208336, 53.33447265625001, 49.142985026041664, + 62.19004313151042, 49.04172770182293, 72.08839925130208, 48.54003906249999, + 48.274210611979164, 81.71942138671875, 78.13138834635417, 41.99017333984374, + 77.45302327473958, 54.76991780598959, 61.97479248046874, 64.00362141927083, + 34.013448079427086, 34.48307291666667, 34.42655436197917, 35.0555419921875, + 33.461039225260414, 33.428934733072914, 36.78959147135417, 40.045145670572914, 0.0, + 33.458882649739586, 35.696797688802086, 34.079996744791664, 37.699117024739586, + 35.74688720703125, 33.970784505208336, 34.70458984375, 33.80810546875, 34.270406087239586, + 32.466064453125, 36.79844156901042, 27.004150390625, 33.10337320963542, + 35.851765950520836, 32.546366373697914, 33.35850016276042, 44.321512858072914, + 30.296407063802082, 41.66906738281249 + ], + [ + 87.77813720703125, 65.81209309895833, 53.161112467447914, 59.05169677734376, + 78.73437499999999, 70.82033284505209, 86.38484700520833, 72.06166585286458, + 66.08194986979167, 71.27109781901041, 49.621602376302086, 79.99829101562499, + 58.148783365885414, 59.76409912109375, 61.88441975911458, 56.00266520182292, + 71.95288085937501, 58.46504720052083, 82.33882649739584, 56.98341878255208, + 57.56842041015625, 92.60811360677083, 89.53033447265626, 46.8433837890625, + 87.73811848958333, 64.41365559895834, 72.08931477864583, 74.03525797526042, + 37.33500162760417, 37.51593017578125, 33.74794514973958, 39.040913899739586, + 35.78771972656249, 33.949991861979164, 33.301859537760414, 34.199422200520836, + 33.458882649739586, 0.0, 38.45723470052083, 41.68792724609375, 38.97790527343751, + 31.307657877604164, 39.56077067057292, 36.61484781901042, 34.66986083984375, + 31.894816080729168, 33.368672688802086, 40.740478515625, 39.968404134114586, + 40.36649576822917, 33.057108561197914, 38.64034016927083, 34.58984375, 48.970865885416664, + 31.893676757812504, 48.34084065755208 + ], + [ + 66.27581787109375, 48.87040201822917, 41.109151204427086, 43.39019775390625, + 58.116129557291664, 51.844258626302086, 64.19441731770833, 51.812032063802086, + 46.7060546875, 51.71453857421874, 37.543070475260414, 58.86267089843749, + 42.021870930989586, 43.083964029947914, 44.36676025390624, 43.345235188802086, + 52.443644205729164, 42.22412109375, 61.13309733072916, 41.67193603515625, + 41.62599690755208, 68.286376953125, 65.08518473307292, 39.719767252604164, + 65.35555013020833, 46.53828938802083, 51.73486328125, 53.643208821614586, 35.138916015625, + 33.74953206380208, 42.196797688802086, 35.89304606119792, 35.17073567708333, + 38.0577392578125, 46.10504150390625, 50.11751302083334, 35.696797688802086, + 38.45723470052083, 0.0, 35.543680826822914, 28.904988606770836, 37.982177734375, + 34.53147379557292, 37.53668212890626, 30.735819498697918, 35.53100585937499, + 36.546651204427086, 34.04923502604167, 35.20347086588542, 34.522623697916664, + 41.070332845052086, 33.6051025390625, 40.8319091796875, 33.2647705078125, + 34.759684244791664, 38.373881022135414 + ], + [ + 64.3125, 48.16400146484375, 38.91845703125, 45.17887369791667, 57.780253092447914, + 50.1295166015625, 63.25250244140624, 50.377197265625, 45.92710367838542, + 49.376912434895836, 38.017171223958336, 57.22532145182292, 41.72444661458333, + 44.52693684895833, 44.223795572916664, 43.15531412760417, 50.703592936197914, + 42.89023844401042, 58.78082275390625, 41.005940755208336, 40.576416015625, + 68.48996988932291, 64.30192057291667, 38.55442301432292, 64.74713134765625, + 43.63783772786458, 51.164164225260414, 53.540242513020836, 34.91766357421875, + 30.991373697916668, 38.94002278645833, 37.337239583333336, 32.721171061197914, + 37.36098225911458, 43.96919759114583, 49.69691975911458, 34.079996744791664, + 41.68792724609375, 35.543680826822914, 0.0, 37.57387288411458, 39.87957763671875, + 33.484212239583336, 36.947672526041664, 34.960693359375, 37.49757893880208, + 35.87430826822917, 27.51849365234375, 34.34623209635417, 36.06561279296875, + 41.796061197916664, 31.891866048177086, 39.69561767578125, 40.139180501302086, + 37.406880696614586, 36.509684244791664 + ], + [ + 66.29693603515625, 48.77974446614583, 42.62335205078125, 42.89809163411458, + 58.251708984375, 52.32326253255209, 63.920084635416664, 52.659769694010414, + 48.406697591145836, 51.22760009765626, 40.54681396484375, 58.81624348958333, + 42.32208251953125, 45.461690266927086, 44.17279052734375, 43.61558024088542, + 53.025716145833336, 41.452921549479164, 60.86250813802084, 42.14385986328125, + 43.031107584635414, 69.59785970052083, 65.91709391276041, 41.280476888020836, + 65.1314697265625, 48.144002278645836, 53.491617838541664, 53.44399007161458, + 35.2674560546875, 34.746439615885414, 43.60272216796876, 40.22125244140625, + 34.34993489583333, 39.3798828125, 47.82358805338541, 51.02530924479167, + 37.699117024739586, 38.97790527343751, 28.904988606770836, 37.57387288411458, 0.0, + 34.992919921875, 34.80393473307292, 38.49322509765624, 29.36928304036458, + 31.325398763020836, 38.145121256510414, 37.6641845703125, 37.71514892578125, + 35.4307861328125, 41.84307861328125, 31.818318684895832, 42.243611653645836, + 29.461588541666664, 37.72949218749999, 36.20485432942708 + ], + [ + 83.58766682942709, 61.87076822916667, 51.06744384765626, 56.68129475911459, + 73.7606201171875, 66.72357177734375, 81.97115071614583, 67.93288167317708, + 61.72347005208334, 65.52142333984375, 47.358744303385414, 75.22509765625, + 55.59299723307292, 56.809916178385414, 58.45371500651042, 54.109842936197914, + 68.20125325520833, 54.227132161458336, 78.199951171875, 53.78704833984374, + 53.58538818359375, 88.10982259114583, 84.46242268880208, 46.70031738281251, + 83.54756673177084, 59.86104329427084, 68.30135091145834, 69.55080159505208, + 35.297403971354164, 37.04473876953125, 35.89227294921875, 35.898295084635414, + 31.120564778645836, 31.535685221354164, 35.098368326822914, 37.5625, 35.74688720703125, + 31.307657877604164, 37.982177734375, 39.87957763671875, 34.992919921875, 0.0, + 36.16868082682292, 35.580301920572914, 31.45033772786458, 25.819173177083336, + 32.55950927734375, 37.785807291666664, 38.499369303385414, 39.3543701171875, + 33.389912923177086, 35.0596923828125, 34.0902099609375, 43.98124186197917, + 33.870361328125, 39.53155517578125 + ], + [ + 73.07511393229169, 52.50705973307291, 44.1038818359375, 48.57930501302083, + 64.64341227213542, 55.0386962890625, 71.76536051432292, 56.21586100260416, + 51.20989990234375, 56.04915364583333, 40.13716634114583, 64.31797281901041, + 48.005411783854164, 49.85380045572916, 47.75032552083333, 46.05362955729167, + 58.878560384114586, 46.835184733072914, 66.88348388671875, 43.700032552083336, + 45.8658447265625, 76.92946370442709, 72.42529296875, 39.612162272135414, + 72.22711181640626, 50.09991455078125, 58.10614013671875, 60.448445638020836, + 33.36383056640625, 34.4114990234375, 35.506388346354164, 32.14619954427083, + 32.960957845052086, 33.249125162760414, 39.062906901041664, 43.223246256510414, + 33.970784505208336, 39.56077067057292, 34.53147379557292, 33.484212239583336, + 34.80393473307292, 36.16868082682292, 0.0, 32.85876464843749, 35.315511067708336, + 35.273417154947914, 32.046630859375, 30.338073730468754, 35.35050455729167, + 35.86456298828125, 34.97493489583333, 30.010681152343746, 33.07598876953125, + 37.32212320963542, 31.575907389322918, 39.56058756510417 + ], + [ + 76.015625, 55.492451985677086, 43.321818033854164, 50.06490071614583, 68.99367268880208, + 58.364664713541664, 75.07025146484376, 61.5576171875, 54.88429768880208, + 59.21516927083333, 41.73612467447917, 68.44765218098958, 50.6915283203125, + 52.746012369791664, 51.186360677083336, 48.25179036458333, 62.34783935546875, + 50.14394124348959, 71.37078857421875, 45.91149902343749, 48.00939941406249, + 80.87762451171875, 77.603271484375, 41.90374755859375, 76.36391194661458, + 53.53387451171875, 60.80893961588542, 64.15079752604166, 30.64931233723959, + 31.344319661458336, 33.43461100260417, 34.9779052734375, 32.301859537760414, + 33.84328206380208, 35.538289388020836, 39.242411295572914, 34.70458984375, + 36.61484781901042, 37.53668212890626, 36.947672526041664, 38.49322509765624, + 35.580301920572914, 32.85876464843749, 0.0, 34.07076009114583, 32.814717610677086, + 30.681722005208332, 29.798767089843746, 36.433675130208336, 37.57863362630208, + 29.523274739583336, 32.69728597005208, 32.429789225260414, 39.502298990885414, + 33.907246907552086, 42.13566080729167 + ], + [ + 69.94832356770833, 50.11651611328125, 41.43977864583333, 46.54687499999999, + 60.34881591796875, 54.227742513020836, 68.12009684244792, 55.0302734375, + 50.368021647135414, 54.6220703125, 39.16670735677083, 62.01906331380209, + 43.19112141927083, 45.15889485677083, 46.339640299479164, 43.880615234375, + 55.40753173828125, 43.522440592447914, 64.82855224609375, 44.24210611979167, 44.07421875, + 73.91900634765625, 69.79772949218751, 37.94529215494792, 68.94138590494792, + 48.99884033203125, 55.58579508463542, 56.718017578125, 32.394185384114586, + 32.2308349609375, 39.029947916666664, 37.306640625, 31.68080647786459, 35.402811686197914, + 42.370768229166664, 45.90456136067708, 33.80810546875, 34.66986083984375, + 30.735819498697918, 34.960693359375, 29.36928304036458, 31.45033772786458, + 35.315511067708336, 34.07076009114583, 0.0, 30.49566650390625, 34.51912434895833, + 34.892354329427086, 34.03609212239583, 34.13783772786458, 36.57450358072917, + 30.766906738281254, 37.557271321614586, 34.194478352864586, 33.23122151692708, + 36.992919921875 + ], + [ + 77.38962809244791, 56.7164306640625, 45.81199137369792, 51.84796142578124, + 69.6253662109375, 61.14764404296875, 75.9593505859375, 61.68267822265625, + 56.36279296875001, 60.87847900390625, 42.90940348307292, 69.46415201822916, + 50.408793131510414, 52.23468017578125, 53.534159342447914, 49.32175699869792, + 62.70267740885417, 47.85839843750001, 72.9293212890625, 48.97296142578126, + 48.22585042317708, 82.11588541666666, 78.00453694661456, 41.15970865885417, + 77.48266601562499, 54.11258951822917, 62.3670654296875, 64.10036214192708, + 31.582071940104168, 35.562154134114586, 36.709615071614586, 35.34425862630208, + 29.695719401041668, 30.604288736979164, 37.06854248046875, 40.50671386718751, + 34.270406087239586, 31.894816080729168, 35.53100585937499, 37.49757893880208, + 31.325398763020836, 25.819173177083336, 35.273417154947914, 32.814717610677086, + 30.49566650390625, 0.0, 33.42132568359375, 35.81884765625, 34.85105387369791, + 37.44384765625, 33.87469482421875, 34.5244140625, 35.417317708333336, 40.286946614583336, + 32.899739583333336, 38.76186116536458 + ], + [ + 83.38871256510417, 61.40793863932291, 48.0218505859375, 55.774251302083336, + 74.97206624348959, 66.0185546875, 82.61212158203125, 67.78629557291666, 61.41241455078125, + 65.8699951171875, 45.59623209635417, 75.44142659505209, 55.7652587890625, + 56.82698567708333, 56.72306315104167, 52.30570475260417, 68.83087158203125, + 55.49782307942708, 78.77199300130208, 49.75488281250001, 52.21024576822917, + 88.78000895182291, 85.1429443359375, 44.865580240885414, 83.96156819661459, + 59.235249837239586, 67.36016845703125, 70.47029622395833, 33.23610432942708, + 34.459716796875, 31.36181640625, 34.86368815104167, 32.748921712239586, 31.53159586588542, + 30.468098958333332, 33.60866292317708, 32.466064453125, 33.368672688802086, + 36.546651204427086, 35.87430826822917, 38.145121256510414, 32.55950927734375, + 32.046630859375, 30.681722005208332, 34.51912434895833, 33.42132568359375, 0.0, + 34.22625732421875, 37.12280273437501, 36.32464599609375, 29.5322265625, + 31.644266764322918, 29.908955891927082, 44.88755289713542, 32.253560384114586, + 44.374715169270836 + ], + [ + 66.82843017578125, 47.43770345052083, 38.356221516927086, 46.51015218098959, + 61.392049153645836, 51.72955322265625, 66.23848470052084, 52.202128092447914, + 46.521321614583336, 52.61627197265625, 36.63063557942708, 59.72106933593751, + 43.23988850911459, 44.25303141276042, 45.676981608072914, 42.59519449869792, + 54.434244791666664, 43.657389322916664, 62.04500325520833, 42.176534016927086, + 41.651265462239586, 71.68339029947916, 68.11305745442709, 38.7596435546875, + 67.3680419921875, 45.41739908854167, 52.323323567708336, 56.50315348307291, + 33.3050537109375, 33.272359212239586, 35.591776529947914, 30.66058349609375, + 34.1715087890625, 34.8922119140625, 39.68719482421875, 45.789021809895836, + 36.79844156901042, 40.740478515625, 34.04923502604167, 27.51849365234375, + 37.6641845703125, 37.785807291666664, 30.338073730468754, 29.798767089843746, + 34.892354329427086, 35.81884765625, 34.22625732421875, 0.0, 33.809834798177086, + 36.756429036458336, 36.492899576822914, 32.530354817708336, 35.60725911458333, + 36.62886555989583, 32.96439615885417, 37.12921142578125 + ], + [ + 65.72416178385417, 48.20318603515625, 36.442301432291664, 44.99353027343749, + 59.73008219401041, 50.98746744791668, 65.28521728515625, 51.63586425781251, + 45.740336100260414, 51.17586263020833, 36.1629638671875, 59.09889729817708, + 42.849446614583336, 44.41072591145833, 46.231974283854164, 43.527872721354164, + 52.39919026692708, 37.792948404947914, 62.44488525390625, 43.020345052083336, + 41.118733723958336, 70.00860595703125, 65.85164388020834, 37.12314860026042, + 65.46661376953125, 45.09405517578125, 51.73366292317708, 54.21948242187501, + 31.155537923177086, 34.8402099609375, 38.53515624999999, 35.07820638020833, + 31.62908935546875, 33.68202718098958, 43.096842447916664, 48.186014811197914, + 27.004150390625, 39.968404134114586, 35.20347086588542, 34.34623209635417, + 37.71514892578125, 38.499369303385414, 35.35050455729167, 36.433675130208336, + 34.03609212239583, 34.85105387369791, 37.12280273437501, 33.809834798177086, 0.0, + 33.79514567057292, 39.09643554687499, 34.039815266927086, 36.39626057942708, + 40.239237467447914, 33.059183756510414, 37.137288411458336 + ], + [ + 67.26149495442709, 48.904866536458336, 41.04954020182292, 44.438130696614586, + 58.949544270833336, 51.65224202473959, 65.33874511718749, 52.912455240885414, + 49.62190755208333, 54.107442220052086, 40.60117594401042, 58.34716796875, + 42.78175862630208, 45.907694498697914, 46.741231282552086, 44.599100748697914, + 52.902669270833336, 44.3724365234375, 60.505818684895836, 44.694844563802086, + 42.53582763671876, 71.25785319010416, 67.68039957682291, 34.310587565104164, + 66.60648600260416, 49.55387369791666, 54.045043945312514, 55.92356363932292, + 37.514607747395836, 34.00657145182292, 43.60048421223958, 41.25819905598958, + 36.136759440104164, 34.20735677083333, 44.40679931640625, 48.28511555989583, + 33.10337320963542, 40.36649576822917, 34.522623697916664, 36.06561279296875, + 35.4307861328125, 39.3543701171875, 35.86456298828125, 37.57863362630208, + 34.13783772786458, 37.44384765625, 36.32464599609375, 36.756429036458336, + 33.79514567057292, 0.0, 42.28489176432292, 33.27400716145833, 41.83642578125001, + 41.585652669270836, 33.629353841145836, 36.31353759765625 + ], + [ + 87.59427897135417, 64.28444417317708, 51.9554443359375, 58.985270182291664, + 78.91412353515625, 68.86637369791666, 86.63417561848958, 70.70849609375, + 64.91151936848958, 70.01371256510417, 48.465372721354164, 79.74733479817708, + 59.42647298177083, 60.067952473958336, 61.3125, 54.15722656249999, 72.19960530598959, + 58.20855712890625, 82.99110921223958, 55.639119466145836, 56.510498046875, + 92.59560139973959, 89.096923828125, 48.288431803385414, 87.79083251953125, + 61.88494873046875, 71.81479899088542, 74.31180826822916, 29.586893717447918, + 38.162801106770836, 29.126017252604168, 33.232747395833336, 35.17022705078125, + 34.02764892578125, 30.429199218749996, 30.20672607421875, 35.851765950520836, + 33.057108561197914, 41.070332845052086, 41.796061197916664, 41.84307861328125, + 33.389912923177086, 34.97493489583333, 29.523274739583336, 36.57450358072917, + 33.87469482421875, 29.5322265625, 36.492899576822914, 39.09643554687499, + 42.28489176432292, 0.0, 35.36907958984376, 29.74298095703125, 47.01320393880208, + 32.91526285807292, 47.80920410156251 + ], + [ + 69.49810791015625, 49.870035807291664, 42.05792236328125, 46.42327880859375, + 61.358154296875, 53.87428792317708, 67.8555908203125, 55.12176513671876, + 47.814493815104164, 53.398213704427086, 38.882670084635414, 60.97139485677083, + 45.226826985677086, 46.91668701171876, 46.679219563802086, 43.19647216796876, + 54.980550130208336, 45.215779622395836, 63.95552571614583, 42.76153564453126, + 41.89308675130208, 73.38387044270833, 69.03981526692709, 39.77587890625, + 68.52461751302084, 48.03865559895833, 55.244181315104164, 57.02410888671874, + 32.9400634765625, 29.612284342447918, 36.913350423177086, 34.335225423177086, + 32.948649088541664, 33.68212890625, 40.89508056640624, 44.74462890625, 32.546366373697914, + 38.64034016927083, 33.6051025390625, 31.891866048177086, 31.818318684895832, + 35.0596923828125, 30.010681152343746, 32.69728597005208, 30.766906738281254, + 34.5244140625, 31.644266764322918, 32.530354817708336, 34.039815266927086, + 33.27400716145833, 35.36907958984376, 0.0, 30.719645182291668, 35.459187825520836, + 29.951497395833332, 34.17926025390625 + ], + [ + 85.29738362630208, 62.5439453125, 51.18145751953125, 59.25335693359375, 76.511474609375, + 67.17860921223958, 84.046630859375, 69.04909261067709, 61.163818359375, 67.64512125651041, + 47.18487548828125, 76.96907552083334, 58.416524251302086, 59.002217610677086, + 60.14483642578125, 54.321309407552086, 69.88659667968749, 56.164713541666664, + 80.44917805989583, 54.52394612630208, 55.16937255859374, 89.8748779296875, + 86.16656494140625, 46.372477213541664, 85.17138671875, 60.421712239583336, + 69.78666178385417, 72.16440836588542, 34.896158854166664, 35.68292236328125, + 25.662089029947914, 31.68182373046875, 35.1724853515625, 34.20284016927084, + 30.875752766927086, 34.5582275390625, 33.35850016276042, 34.58984375, 40.8319091796875, + 39.69561767578125, 42.243611653645836, 34.0902099609375, 33.07598876953125, + 32.429789225260414, 37.557271321614586, 35.417317708333336, 29.908955891927082, + 35.60725911458333, 36.39626057942708, 41.83642578125001, 29.74298095703125, + 30.719645182291668, 0.0, 45.262491861979164, 30.260782877604168, 44.78074137369792 + ], + [ + 57.812845865885414, 42.868855794270836, 39.947408040364586, 40.84344482421876, + 52.36494954427083, 43.89247639973958, 55.862955729166664, 46.278299967447914, + 41.330281575520836, 44.82309977213542, 38.07318115234375, 51.14786783854167, + 39.78098551432292, 43.57700602213542, 39.546895345052086, 40.38787841796875, + 47.480183919270836, 39.033406575520836, 52.905721028645836, 38.144673665364586, + 39.06064860026042, 60.45483398437501, 57.28037516276041, 41.649658203125, + 55.98811848958333, 41.90966796875, 46.760579427083336, 47.74582926432292, + 40.124471028645836, 37.467142740885414, 48.12261962890625, 42.25067138671875, + 38.424560546875, 45.9046630859375, 55.633687337239586, 59.74092610677084, + 44.321512858072914, 48.970865885416664, 33.2647705078125, 40.139180501302086, + 29.461588541666664, 43.98124186197917, 37.32212320963542, 39.502298990885414, + 34.194478352864586, 40.286946614583336, 44.88755289713542, 36.62886555989583, + 40.239237467447914, 41.585652669270836, 47.01320393880208, 35.459187825520836, + 45.262491861979164, 0.0, 43.399658203125, 34.97780354817708 + ], + [ + 79.28790283203125, 57.52132161458333, 45.67877197265625, 52.744120279947914, + 70.28120930989583, 61.954203287760414, 77.87931315104167, 62.970723470052086, + 57.11918131510417, 62.829325358072914, 44.08262125651042, 71.241455078125, + 52.10748291015624, 52.15081787109374, 54.92336018880208, 50.01788330078125, + 63.86279296875, 50.58121744791667, 73.82588704427083, 50.77284749348959, + 50.520121256510414, 83.58675130208333, 79.47589111328125, 41.318562825520836, + 79.12483723958333, 56.258097330729164, 64.2587890625, 65.93902587890626, + 34.26379394531249, 35.00136311848958, 32.96063232421875, 33.61053466796875, + 33.515421549479164, 32.86983235677083, 36.647196451822914, 40.1729736328125, + 30.296407063802082, 31.893676757812504, 34.759684244791664, 37.406880696614586, + 37.72949218749999, 33.870361328125, 31.575907389322918, 33.907246907552086, + 33.23122151692708, 32.899739583333336, 32.253560384114586, 32.96439615885417, + 33.059183756510414, 33.629353841145836, 32.91526285807292, 29.951497395833332, + 30.260782877604168, 43.399658203125, 0.0, 41.911356608072914 + ], + [ + 57.90551757812501, 41.771097819010414, 39.10432942708333, 40.45947265624999, + 52.61041259765625, 43.745890299479164, 56.32220458984375, 46.828450520833336, + 41.36513264973958, 45.482381184895836, 38.53434244791667, 49.562520345052086, + 39.715738932291664, 41.75573730468749, 41.60437011718749, 41.98714192708333, + 46.55206298828126, 40.46429443359375, 53.36216227213542, 41.11376953125, 36.4952392578125, + 61.663920084635414, 57.68489583333333, 38.171610514322914, 57.85032145182291, + 42.645894368489586, 46.87078857421876, 48.50162760416667, 38.43829345703125, + 35.524698893229164, 49.229736328125, 40.9339599609375, 34.60614013671874, + 38.07391357421874, 54.8240966796875, 58.78151448567708, 41.66906738281249, + 48.34084065755208, 38.373881022135414, 36.509684244791664, 36.20485432942708, + 39.53155517578125, 39.56058756510417, 42.13566080729167, 36.992919921875, + 38.76186116536458, 44.374715169270836, 37.12921142578125, 37.137288411458336, + 36.31353759765625, 47.80920410156251, 34.17926025390625, 44.78074137369792, + 34.97780354817708, 41.911356608072914, 0.0 + ] + ], + "units": "SYS_CNT ticks", + "source": { + "name": "scalar_128MiB_vector_concurrent", + "matrices": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_vector_concurrent.npz", + "sha256": "c089ba65f70bbab83ba96de0c21a74196fe23fee0ea9b69f0ea334ab890bc8c1", + "bytes": 6480794 + }, + "statistics": { + "path": "benchmarks/ascend950pr_cube_vector_heatmaps_20261006/analysis/scalar_128MiB_vector_concurrent.json", + "sha256": "a1d98ed9f67c83af66c56773f06131adbc5468e770ec003bb13cae810610357a", + "bytes": 55726 + } + }, + "pair_statistics": { + "all_unique_core_pairs": { + "count": 1540, + "mean": 47.85145842316863, + "std": 15.462931483075401, + "quantiles": { + "0.0": 21.95041910807292, + "0.01": 28.896673583984377, + "0.05": 31.139119466145832, + "0.25": 35.31329854329427, + "0.5": 43.193796793619796, + "0.75": 56.741648356119796, + "0.95": 78.91524759928386, + "0.99": 92.16291259765616, + "1.0": 108.00260416666667 + } + }, + "within_decoded_die": { + "count": 756, + "mean": 36.511118947723766, + "std": 5.3322432933774175, + "quantiles": { + "0.0": 21.95041910807292, + "0.01": 27.36714274088542, + "0.05": 29.905665079752602, + "0.25": 33.05262247721354, + "0.5": 35.265716552734375, + "0.75": 38.84220886230469, + "0.95": 47.025299072265625, + "0.99": 54.262149047851565, + "1.0": 59.74092610677084 + } + }, + "between_decoded_die": { + "count": 784, + "mean": 58.78678577449046, + "std": 14.094540239855059, + "quantiles": { + "0.0": 34.310587565104164, + "0.01": 37.91939371744792, + "0.05": 40.47667236328125, + "0.25": 47.469563802083336, + "0.5": 56.342498779296875, + "0.75": 68.11939493815105, + "0.95": 85.27848409016926, + "0.99": 97.6203428141276, + "1.0": 108.00260416666667 + } + } + }, + "dieGroups": [ + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "A", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B", + "B" + ] + } + ], + "color_limits": [0, 113.63708496093749], + "note": "Sorted actual physical IDs; lines mark decoded dies. Matrix entries are access-profile differences, not core-to-core latency or geometric distance.", + "sourceSha256": "851e29c2228e2d93dfda8128e36a3e46bb1f9b1e43410e9a6d6d6708f147b3bf", + "metadata": { + "device": "Ascend950PR_9579", + "footprintBytes": 134217728, + "timer": "SYS_CNT", + "passes": 6, + "coreCounts": { + "cube": 28, + "vector": 56 + }, + "source": "128 MiB scalar controller experiment; full displayed matrices retained without rounding.", + "captureDates": { + "from": "2026-10-06", + "to": "2026-10-07", + "timezone": "Asia/Singapore" + }, + "cann": "9.1.0", + "driver": "25.7.rc1.10" + } +} diff --git a/packages/app/src/lib/api/api-route-catalog.ts b/packages/app/src/lib/api/api-route-catalog.ts index a8bf17779..f0f40f7bb 100644 --- a/packages/app/src/lib/api/api-route-catalog.ts +++ b/packages/app/src/lib/api/api-route-catalog.ts @@ -518,7 +518,7 @@ export const apiRouteCatalog = [ method: 'GET', classification: 'published-read', operationId: 'get-ubenchx-view', - sourceSha256: '7446193b97506c03e3df2908ea8d25f61e134e18005efe8839ff2bb3ed105595', + sourceSha256: '20755a02e4f59eb3d3a833b8b6cb6c8179c046930b72376b06a5817fa5eab05a', }, { source: 'src/app/api/v1/operatorx/runs/route.ts', @@ -1175,6 +1175,15 @@ export const apiContractSourceDigests = [ }, }, + { + source: 'src/components/ubenchx/core-memory-profiles.ts', + sourceSha256: 'e616d19a91e814a414ddcfef871fb89b79b62d81b76b6ace3454a563d48054c8', + reviewArea: { + en: 'ubenchX Huawei measurement units, protocol metadata and shared UI/API calculations.', + zh: 'ubenchX Huawei 测量单位、协议元数据及界面与 API 共用的计算。', + }, + }, + { source: 'src/lib/catalog/gpu-specs.ts', sourceSha256: 'fb9dc719f347fb5b73ea73cf35a19d12c640b34a284f31cd70a8b9b2df76b4fd', diff --git a/packages/app/src/lib/views-api/docs/extensions.ts b/packages/app/src/lib/views-api/docs/extensions.ts index 59f99a10b..6883701b8 100644 --- a/packages/app/src/lib/views-api/docs/extensions.ts +++ b/packages/app/src/lib/views-api/docs/extensions.ts @@ -357,12 +357,12 @@ const PARAMETER_NOTES: Record = { 'JSON 对象,将视频数据点 ID 映射为 {hourly,source,date} 字符串;hourly 为非负 USD/deployment-hour。', ], gpu: [ - 'Accelerator key, e.g. "H100 SXM", "Huawei 950PR". Default: first available device. "all" returns all devices; unavailable tests retain their section object with an empty gpus array for an explicitly selected device.', - '加速器键,如 "H100 SXM"或 "Huawei 950PR"。默认首个可用设备;"all" 返回全部设备。显式选择设备时,没有数据的测试部分保留对象结构,其中 gpus 数组为空。', + 'Accelerator key, e.g. "H100 SXM", "Huawei 950PR", "B200 SXM" or "Ascend 950PR_9579". core-memory-profiles and tpc-skyline default to "all"; other tests default to the first available device. "all" returns all devices; unavailable tests retain an empty gpus array for an explicitly selected device.', + '加速器键,如 "H100 SXM"、"Huawei 950PR"、"B200 SXM" 或 "Ascend 950PR_9579"。core-memory-profiles 和 tpc-skyline 默认 "all",其他测试默认首个可用设备。"all" 返回全部设备;显式选择设备时,没有数据的测试保留空 gpus 数组。', ], test: [ - 'ubenchX test selector: mem-bw, sm-l2-distance, tpc-skyline, or all (default). Determines which benchmark data is returned.', - 'ubenchX 测试选择:mem-bw、sm-l2-distance、tpc-skyline 或 all(默认),决定返回哪种基准测试数据。', + 'ubenchX test selector: mem-bw, sm-l2-distance, tpc-skyline, core-memory-profiles, or all (default). Determines which benchmark data is returned.', + 'ubenchX 测试选择:mem-bw、sm-l2-distance、tpc-skyline、core-memory-profiles 或 all(默认),决定返回哪种基准测试数据。', ], view: ['Video results (default) or tradeoff.', '视频 results(默认)或 tradeoff。'], }; @@ -503,9 +503,16 @@ const NEW_VIEWS = { }, ], ubenchx: [ - 'ubenchX microbenchmarks with per-device protocols and bandwidth references (mem-bw, sm-l2-distance, and tpc-skyline)', - 'ubenchX 微基准测试及各设备的测试协议和带宽参考值(mem-bw、sm-l2-distance 和 tpc-skyline)', - { gpus: objects, tests: strings, memBw: object, smL2Distance: object, tpcSkyline: object }, + 'ubenchX microbenchmarks with per-device protocols and bandwidth references (mem-bw, sm-l2-distance, tpc-skyline, and core-memory-profiles)', + 'ubenchX 微基准测试及各设备的测试协议和带宽参考值(mem-bw、sm-l2-distance、tpc-skyline 和 core-memory-profiles)', + { + gpus: objects, + tests: strings, + memBw: object, + smL2Distance: object, + tpcSkyline: object, + coreMemoryProfiles: object, + }, ], } as const; @@ -519,7 +526,7 @@ export const operations: ApiOperation[] = Object.entries(NEW_VIEWS).map( path: `/api/v1/views/${view}`, summary: text(en, zh), description: text( - `Read-only ${en.toLowerCase()} using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.${view === 'ubenchx' ? ' mem-bw includes Huawei rotating-pool FP16 graph results. timeMs is amortized per copy for metadata.protocol=rotating-pool-npu-graph. peakBandwidthSource documents the per-run normalization reference; optional rows retain observations, bandwidthP10Gbps, bandwidthP90Gbps, processBandwidthGbps, slots and combinedPoolBytes. Missing sizes are listed in metadata.missingSizesBytes.' : ''}${ + `Read-only ${en.toLowerCase()} using the dashboard's source handlers and calculation helpers. Unknown and repeated query keys return 400. The response includes resolved params and preserves missing evidence. Renderer-only styling is not an API parameter.${view === 'ubenchx' ? ' core-memory-profiles defaults to gpu=all and returns B200 SXM plus Ascend 950PR_9579; gpu selects either device. B200 retains orderedSms, smInfo, gpcBounds, matrix, stats and metadata, with unit=clock64 cycles and its own colorLimits. The legacy sm-l2-distance API remains available with its original shape. Ascend returns panels with actual coreIds, dieGroups, full matrices, raw SYS_CNT tick units and unique-pair within/between-group statistics; a missing pair class is null. Shared colorLimits and limitations preserve the interpretation. These are profile differences, not core-to-core latency or a floorplan. mem-bw includes Huawei rotating-pool FP16 graph results. timeMs is amortized per copy for metadata.protocol=rotating-pool-npu-graph. peakBandwidthSource documents the per-run normalization reference; optional rows retain observations, bandwidthP10Gbps, bandwidthP90Gbps, processBandwidthGbps, slots and combinedPoolBytes. Missing sizes are listed in metadata.missingSizesBytes.' : ''}${ view === 'video' ? ' Only already published artifacts are read. Cell, phase, slot and GPU-basis choices select result evidence and normalized serving rates; x/y/cost/workload filters produce computed tradeoff points. Local bundles and arbitrary URLs are excluded. Responses are no-store.' : view === 'current-inferencex-image' @@ -528,7 +535,7 @@ export const operations: ApiOperation[] = Object.entries(NEW_VIEWS).map( ? ' Telemetry comes from one source per run: its stored DB series once the run is ingested, otherwise its GitHub artifacts. Stored coverage describes the entire run: complete means the recorded artifact/file inventory is present, partial means recorded telemetry is missing, and unknown means no complete inventory was retained; missingArtifacts names entirely missing artifacts and may be empty when only a file is incomplete. GitHub coverage is null (unassessed). Responses use private, no-store; an upstream database failure remains HTTP 503 rather than an empty dataset. File/host series retain separate identities. Raw rows and charts respect selected GPU indices. Statistics cover every chip of the selected file/host series, including startup and warmup, and are computed from its samples on each read; a stored series whose samples do not match its recorded sample count returns none. Mean is sample-weighted, P50/P95/P99 interpolate linearly at p*(N-1), and standard deviation divides by N. These statistics are not serving-window power or J/token. Line time remains relative to the first sample across all chips; missing metric readings are omitted rather than zero-filled. Correlations require both readings. This endpoint projects the raw GPU-metrics explorer, not the inference Power Timeline. Timeline role/window evidence comes from its existing series=power read plus benchmark power_audit. Timeline i_ptaxis, i_ptlines, i_ptwindow, i_ptfocus, i_ptutility and i_ptconc share fields control client rendering only and are not accepted here; they do not change raw telemetry or full-record statistics.' : '' }`, - `只读${zh},使用仪表板的数据读取和计算函数。未知或重复查询键返回 400;响应包含解析后的参数,保留缺失数据。仅影响样式的控件不作为 API 参数。${view === 'ubenchx' ? ' mem-bw 包含 Huawei FP16 轮转缓冲池图执行结果。metadata.protocol=rotating-pool-npu-graph 时,timeMs 为每次拷贝的摊销时间。peakBandwidthSource 说明该次测量采用的归一化参考值;行数据可保留 observations、bandwidthP10Gbps、bandwidthP90Gbps、processBandwidthGbps、slots 和 combinedPoolBytes。缺失大小列在 metadata.missingSizesBytes。' : ''}${ + `只读${zh},使用仪表板的数据读取和计算函数。未知或重复查询键返回 400;响应包含解析后的参数,保留缺失数据。仅影响样式的控件不作为 API 参数。${view === 'ubenchx' ? ' core-memory-profiles 默认 gpu=all,返回 B200 SXM 和 Ascend 950PR_9579;gpu 可单独选择设备。B200 保留 orderedSms、smInfo、gpcBounds、matrix、stats 和 metadata,单位为 clock64 cycles,使用独立 colorLimits。旧版 sm-l2-distance API 仍可使用,响应结构不变。Ascend 返回各面板的实际 coreIds、dieGroups、完整矩阵、原始 SYS_CNT tick 单位及去重核心对的组内和组间统计;没有对应核心对时为 null。colorLimits 和 limitations 保留统一色标及解释限制。这些数据是访存特征差异,不是核心间通信延迟或物理布局图。 mem-bw 包含 Huawei FP16 轮转缓冲池图执行结果。metadata.protocol=rotating-pool-npu-graph 时,timeMs 为每次拷贝的摊销时间。peakBandwidthSource 说明该次测量采用的归一化参考值;行数据可保留 observations、bandwidthP10Gbps、bandwidthP90Gbps、processBandwidthGbps、slots 和 combinedPoolBytes。缺失大小列在 metadata.missingSizesBytes。' : ''}${ view === 'video' ? ' 仅读取已发布产物。cell、阶段、slot 和 GPU 口径选择对应结果证据,并计算 serving 归一化速率;x/y、成本及工作负载筛选生成权衡图数据点。不读取本地数据包或任意 URL。响应不缓存。' : view === 'current-inferencex-image' diff --git a/packages/skills/skills/inferencex-api/integrity.json b/packages/skills/skills/inferencex-api/integrity.json index 889778a9e..1f8eccdca 100644 --- a/packages/skills/skills/inferencex-api/integrity.json +++ b/packages/skills/skills/inferencex-api/integrity.json @@ -9,7 +9,7 @@ "references/cli-contract.md": "4f070877eeefffad2860c58f79f68432fbe27aa21fc578a1c696f0309a3d7d7b", "references/cli.md": "11e1183f7ed70d669019e8435ac16a6a9f873de027507b8850a9943f6659bfd9", "references/collectivex.md": "f79cf8e2779a9289ab69f79f4a4b338e0b9a5f76a3750a3e969f33a744e726a1", - "references/dashboard-views.md": "5b39a62b5fa97d80cd529bcb0f3da58bc7e902117456d26f43cf9f8ea541b70a", + "references/dashboard-views.md": "47ef953ebdb4125144d801a697ef9dcabaa4dd02bcb083a052c127635e163990", "references/offline-exports.md": "95aa565dcd4c9e592159baa560a9a58217bc61e395de1c6daf0576795c7f4ec9", "references/pareto.md": "1b4d2d163f982e3f2d97addce310789eae9c1e5badd82dd7501708c9e0385027", "references/powerx.md": "5af5527d54a7e6191a5769080c122638b333b1ceb59e19fdee7df662a5cd3c8f", diff --git a/packages/skills/skills/inferencex-api/references/dashboard-views.md b/packages/skills/skills/inferencex-api/references/dashboard-views.md index 10e33f122..710a25a4e 100644 --- a/packages/skills/skills/inferencex-api/references/dashboard-views.md +++ b/packages/skills/skills/inferencex-api/references/dashboard-views.md @@ -172,29 +172,29 @@ All paths below are relative to `/api/v1/views/`. The maintained exhaustive query-key list is in the app's OpenAPI contract. The following groups explain which API selectors belong together. -| View | Selection and calculation | -| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `options` | Static registries and defaults, JSON only. Data-dependent run/config choices come from their own views. | -| `inference` | Model, sequence, precisions, date/exact run, GPU/vendor/framework/deployment/spec/power filters; metric, xmode, xstat, xmetric, percentile, optimal/best/allPoints; API-only equal-service sources/target; roleShare and powerFit panels; TCO, custom costs/powers, pricing, unofficial runs, comparison dates/endpoints. JSON or CSV. | -| `historical` | Model, sequence, target, metric, precisions, GPUs/vendors/frameworks/deployment, start/end, TCO and pricing. `extendToDate` labels synthetic extension, defaults to current UTC date. JSON or CSV. | -| `calculator` | Model/sequence/run/date, precisions/GPUs, percentile, target/mode, token type, owning/renting cost, TCO, power budget, cost cap, hide-above-limit and public unofficial runs. JSON or CSV. | -| `first-token` | Benchmark selection plus 1–8 positive TTFT caps in seconds, minimum interactivity, cost provider and token type. Shared dashboard winner selection. | -| `cache-reuse` | AgentX selection plus exact `config` from returned configurations and `recipe` from data.recipes. Cache-reuse curves retain official versus unofficial evidence. | -| `profit-estimator` | AgentX selection, comparison dates/runs, target, utilization, lab revenue share, list/OpenRouter/custom token prices, own/rent/custom chip costs, TCO, actual/theoretical cache-hit mode and provisioned/modeled/compare power. USD/chip-hour. | -| `profit-estimator-per-gigawatt` | Same selectors; USD/GW-year basis and owning-cost default. | -| `fleet` | Model/sequence/precision/GPUs, target/percentile, TCO/token type/cost provider, MW, input/output prices, ramp, cache discount, MTBI, recovery, horizon and metric. JSON or CSV. | -| `evaluation` | Model, task, date, precision and GPU selection; public unofficial runs remain separately labeled and independent of the official date cutoff. JSON or CSV. | -| `reliability` | Rolling range, GPU selection and optional `asOf` date for reproducibility. JSON or CSV. | -| `gpu-specs` | Full hardware properties or selected metric ranking; table/radar/bar are renderings of these values. JSON or CSV. | -| `overview` | Models, model/hardware row limits, hardware tier, engine, comparison mode and reference. JSON or CSV. | -| `rankings` | Ranking kind (model or chip), selected model/scenario and format. Use the exact values in OpenAPI. | -| `compare` | GPU pairs, model/slug, scenario, tier selection and variant. JSON or CSV. | -| `collectivex` | Ordered run selection and suite; EP size/phase/modes/precision/operation/percentile/axis/SKU/backend/series; KV page size/x/y/pull/push/overlap ISL/series; swap direction/layout/metric/percentile/series. | -| `submissions` | Search, table sort/direction/offset/limit, weekly/cumulative chart, on-change cutoff and NVIDIA/AMD/total lines. Table search does not filter the independent submission-volume chart. | -| `current-inferencex-image` | Model, sequence, hardware, precision, speculation, node type, framework families, `asOf` for image age/release status, and `includeHistory` for daily age history. | -| `gpu-metrics` | Required run, file/host artifact, GPU indices, metric or correlation axes, statistics sorting, chart mode and interactive downsampling preference. One telemetry source per run; full-record statistics computed on read. Not a serving-window/role-pool projection. Responses are no-store. | -| `ubenchx` | Test selector (`test`: `mem-bw`, `sm-l2-distance`, `tpc-skyline`, or `all`) plus GPU selector (`all` or one GPU). `mem-bw` returns static device-memory copy bandwidth rows with derived MBU and latency. The Huawei key is `Huawei 950PR` (measured SKU `Ascend950PR_9579`): FP16 rotating-pool graph timings, 360 observations per size, and explicit 1,600 GB/s reference assumptions in `peakBandwidthSource`. `metadata.protocol`, CANN/torch_npu versions, and absent sizes distinguish them from the GPU protocol. `timeMs` is amortized graph-copy time for these rows; optional row fields retain p10/p90 bandwidth, process medians, slots and working-set bytes. An explicit device filter leaves unavailable tests empty. `sm-l2-distance` returns SM-to-SM L2 latency difference matrix with GPC/die topology and summary statistics. `tpc-skyline` returns measured TPCs per GPC (sorted descending) with GPC, TPC, and SM counts, defaulting to every GPU. `all` (default) returns every test. The Y-axis selector on `/ubenchx/mem-bw` is presentation-only. | -| `video` | CI run/artifact discovery; only already-published artifact reads; source, serving cell, media/fidelity slot, power phase and GPU denominator; same-workload comparisons, axes, deployment costs and selected tradeoff point. No-store. | +| View | Selection and calculation | +| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `options` | Static registries and defaults, JSON only. Data-dependent run/config choices come from their own views. | +| `inference` | Model, sequence, precisions, date/exact run, GPU/vendor/framework/deployment/spec/power filters; metric, xmode, xstat, xmetric, percentile, optimal/best/allPoints; API-only equal-service sources/target; roleShare and powerFit panels; TCO, custom costs/powers, pricing, unofficial runs, comparison dates/endpoints. JSON or CSV. | +| `historical` | Model, sequence, target, metric, precisions, GPUs/vendors/frameworks/deployment, start/end, TCO and pricing. `extendToDate` labels synthetic extension, defaults to current UTC date. JSON or CSV. | +| `calculator` | Model/sequence/run/date, precisions/GPUs, percentile, target/mode, token type, owning/renting cost, TCO, power budget, cost cap, hide-above-limit and public unofficial runs. JSON or CSV. | +| `first-token` | Benchmark selection plus 1–8 positive TTFT caps in seconds, minimum interactivity, cost provider and token type. Shared dashboard winner selection. | +| `cache-reuse` | AgentX selection plus exact `config` from returned configurations and `recipe` from data.recipes. Cache-reuse curves retain official versus unofficial evidence. | +| `profit-estimator` | AgentX selection, comparison dates/runs, target, utilization, lab revenue share, list/OpenRouter/custom token prices, own/rent/custom chip costs, TCO, actual/theoretical cache-hit mode and provisioned/modeled/compare power. USD/chip-hour. | +| `profit-estimator-per-gigawatt` | Same selectors; USD/GW-year basis and owning-cost default. | +| `fleet` | Model/sequence/precision/GPUs, target/percentile, TCO/token type/cost provider, MW, input/output prices, ramp, cache discount, MTBI, recovery, horizon and metric. JSON or CSV. | +| `evaluation` | Model, task, date, precision and GPU selection; public unofficial runs remain separately labeled and independent of the official date cutoff. JSON or CSV. | +| `reliability` | Rolling range, GPU selection and optional `asOf` date for reproducibility. JSON or CSV. | +| `gpu-specs` | Full hardware properties or selected metric ranking; table/radar/bar are renderings of these values. JSON or CSV. | +| `overview` | Models, model/hardware row limits, hardware tier, engine, comparison mode and reference. JSON or CSV. | +| `rankings` | Ranking kind (model or chip), selected model/scenario and format. Use the exact values in OpenAPI. | +| `compare` | GPU pairs, model/slug, scenario, tier selection and variant. JSON or CSV. | +| `collectivex` | Ordered run selection and suite; EP size/phase/modes/precision/operation/percentile/axis/SKU/backend/series; KV page size/x/y/pull/push/overlap ISL/series; swap direction/layout/metric/percentile/series. | +| `submissions` | Search, table sort/direction/offset/limit, weekly/cumulative chart, on-change cutoff and NVIDIA/AMD/total lines. Table search does not filter the independent submission-volume chart. | +| `current-inferencex-image` | Model, sequence, hardware, precision, speculation, node type, framework families, `asOf` for image age/release status, and `includeHistory` for daily age history. | +| `gpu-metrics` | Required run, file/host artifact, GPU indices, metric or correlation axes, statistics sorting, chart mode and interactive downsampling preference. One telemetry source per run; full-record statistics computed on read. Not a serving-window/role-pool projection. Responses are no-store. | +| `ubenchx` | Test selector (`test`: `mem-bw`, `sm-l2-distance`, `tpc-skyline`, `core-memory-profiles`, or `all`) plus GPU selector (`all` or one GPU). `mem-bw` returns static device-memory copy bandwidth rows with derived MBU and latency. The Huawei key is `Huawei 950PR` (measured SKU `Ascend950PR_9579`): FP16 rotating-pool graph timings, 360 observations per size, and explicit 1,600 GB/s reference assumptions in `peakBandwidthSource`. `metadata.protocol`, CANN/torch_npu versions, and absent sizes distinguish them from the GPU protocol. `timeMs` is amortized graph-copy time for these rows; optional row fields retain p10/p90 bandwidth, process medians, slots and working-set bytes. An explicit device filter leaves unavailable tests empty. `sm-l2-distance` returns SM-to-SM L2 latency difference matrix with GPC/die topology and summary statistics. `tpc-skyline` returns measured TPCs per GPC (sorted descending) with GPC, TPC, and SM counts, defaulting to every GPU. `core-memory-profiles` combines B200 SXM and Ascend on `/ubenchx/core-memory-profiles`, defaulting to `gpu=all`; the hardware selector maps to `gpu=B200 SXM` or `gpu=Ascend 950PR_9579`. The old `/ubenchx/sm-l2-distance` page redirects here, but its API remains backward compatible. B200 retains the SM matrix, GPC/die metadata and statistics, with `unit=clock64 cycles` and its own `colorLimits`. The Ascend result returns all four Ascend 950PR_9579 scalar-controller matrices (Cube/Vector, isolated/concurrent), actual core IDs, color limits shared only across its four panels, per-die-group means and provenance. Values are mean absolute differences between matched-address profiles in raw `SYS_CNT ticks`, not core-to-core latency or calibrated cycles. No grid-wide barrier is used in concurrent launches. Cell hover, pinning and clear-selection controls are presentation-only; all matrix cells remain available in the API. `all` (default) returns every test. Explicit device filters leave unavailable test sections empty. The Y-axis selector on `/ubenchx/mem-bw` is presentation-only. | +| `video` | CI run/artifact discovery; only already-published artifact reads; source, serving cell, media/fidelity slot, power phase and GPU denominator; same-workload comparisons, axes, deployment costs and selected tradeoff point. No-store. | ## Interpretation and maintenance