diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/design/024-batch-executor.md | 5 | ||||
| -rw-r--r-- | docs/research/126-batch-executor-stage-one.md | 2 | ||||
| -rw-r--r-- | docs/research/127-batch-executor-stage-two.md | 4 |
3 files changed, 7 insertions, 4 deletions
diff --git a/docs/design/024-batch-executor.md b/docs/design/024-batch-executor.md index 6a59f7d..b1f8b3a 100644 --- a/docs/design/024-batch-executor.md +++ b/docs/design/024-batch-executor.md @@ -108,8 +108,9 @@ C의 3–300배에서 1.92배로 줄였지만([125](../research/125-tier-first-s 레인 레지스터 16개 × 256 × 8바이트 = 32 KB를 이벤트 스레드 하나가 쓴다(L1 64 KB 안). 펼친 레인(BFS의 간선)도 256씩 끊어 같은 자리를 쓴다. 묶음 프로그램은 루프마다 연산 수십 개 × 32바이트다. 실행 가능한 페이지도, 코드 캐시도 없다. -1단계는 묶음을 1024 레인으로 했다(126). 묶음마다 명령을 해석하는 고정 값(약 500 ns)을 나누기 위해서다. 그래서 레인 버퍼가 16개 × -1024 × 8바이트 = 약 134 KB다. 스레드의 정적 TLS에 있고, 묶음을 도는 스레드만 그 페이지를 쓴다. +1단계는 묶음을 1024 레인으로 했다(126). 묶음마다 명령을 해석하는 고정 값(약 500 ns)을 나누기 위해서다. 2단계에서 레인 버퍼를 +24개로 늘렸다(중첩 루프의 상태와 모으기가 버퍼를 쥔다). 그래서 레인 자리가 24개 × (1024 + 24) × 8바이트 = 약 200 KB다. 스레드의 +정적 TLS에 있고, 묶음을 도는 스레드만 그 페이지를 쓴다. ### JIT와의 관계 diff --git a/docs/research/126-batch-executor-stage-one.md b/docs/research/126-batch-executor-stage-one.md index f51b050..018c113 100644 --- a/docs/research/126-batch-executor-stage-one.md +++ b/docs/research/126-batch-executor-stage-one.md @@ -90,7 +90,7 @@ knapsack의 안쪽 루프 하나(500만 회차)에 묶음이 쓰는 시간은 � ## 메모리 레인 버퍼는 16개 × 1024 × 8바이트 = 약 134 KB다. 스레드의 정적 TLS에 있고, 묶음을 도는 스레드만 그 페이지를 쓴다. 024가 적은 -32 KB(256 레인)보다 크다. 묶음마다의 고정 값을 나누려고 고른 크기다. +32 KB(256 레인)보다 크다. 묶음마다의 고정 값을 나누려고 고른 크기다. (2단계에서 버퍼를 24개로 늘려 약 200 KB가 됐다, 127.) ## 다음 diff --git a/docs/research/127-batch-executor-stage-two.md b/docs/research/127-batch-executor-stage-two.md index 1b361ee..0b81269 100644 --- a/docs/research/127-batch-executor-stage-two.md +++ b/docs/research/127-batch-executor-stage-two.md @@ -55,7 +55,9 @@ 품었다. - `NESTED_SOURCE`: Newton 걸음과 `break`, 회차마다 분수 하나의 합, 레인마다 0–6회차인 안쪽 루프에서 어떤 레인의 회차에만 나는 0 나누기, `max`와 `min`, 레인마다 분수 여럿의 합(묶음이 돌려준다), −0의 합, 격자의 합을 담았다. 작은 예산 둘도 돈다. -- 단위 시험(실행기 모드)이 통과했다. +- 단위 시험(실행기 모드)이 통과했다. sanitized `pure-run`(ASan, UBSan)으로 시드 23의 프로그램, `BATCH_SOURCE`, `NESTED_SOURCE` + 139개를 돌려도 오류가 없었고 출력은 실행기만으로 돈 것과 같았다. +- 레인 버퍼를 24개로 늘려서, 레인 자리는 스레드당 약 200 KB다. ## 다음 |
