aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/design/024-batch-executor.md5
-rw-r--r--docs/research/126-batch-executor-stage-one.md2
-rw-r--r--docs/research/127-batch-executor-stage-two.md4
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다.
## 다음