@@ -49,34 +49,29 @@ pub use types::BusId;
4949/// (* MEMW_A formula gives 2^20, but set to 2^19 to match MEMW chunk geometry;
5050/// benchmarks show better parallel throughput with smaller chunks.)
5151///
52- /// Capped tables use 2^20, not the 2^21 the formula gives. A 2^21 chunk
53- /// runs on a single thread and peaks at twice the memory of a 2^20 chunk.
54- /// Programs that exceed 2^20 rows in a capped table hit a table-overflow
55- /// error.
56- ///
57- /// | Table | Main | Bus | Eff.width | Max rows |
58- /// |---------|------|-----|-----------|-----------------|
59- /// | MEMW | 49 | 26 | 127 | 2^19 |
60- /// | MEMW_A | 29 | 20 | 89 | 2^19 * |
61- /// | CPU | 74 | 40 | 194 | 2^19 |
62- /// | DVRM | 34 | 34 | 136 | 2^19 |
63- /// | MUL | 26 | 16 | 74 | 2^20 |
64- /// | LT | 15 | 9 | 42 | 2^20 (capped) |
65- /// | SHIFT | 27 | 15 | 72 | 2^20 |
66- /// | LOAD | 18 | 5 | 33 | 2^20 (capped) |
67- /// | BRANCH | 14 | 6 | 32 | 2^20 (capped) |
68- /// | MEMW_R | 10 | 7 | 31 | 2^20 (capped) |
52+ /// | Table | Main | Bus | Eff.width | Max rows |
53+ /// |---------|------|-----|-----------|----------|
54+ /// | MEMW | 49 | 26 | 127 | 2^19 |
55+ /// | MEMW_A | 29 | 20 | 89 | 2^19 * |
56+ /// | CPU | 74 | 40 | 194 | 2^19 |
57+ /// | DVRM | 34 | 34 | 136 | 2^19 |
58+ /// | MUL | 26 | 16 | 74 | 2^20 |
59+ /// | LT | 15 | 9 | 42 | 2^21 |
60+ /// | SHIFT | 27 | 15 | 72 | 2^20 |
61+ /// | LOAD | 18 | 5 | 33 | 2^21 |
62+ /// | BRANCH | 14 | 6 | 32 | 2^21 |
63+ /// | MEMW_R | 10 | 7 | 31 | 2^21 |
6964pub mod max_rows {
7065 pub const CPU : usize = 1 << 19 ; // 524,288 — eff. width 194
7166 pub const MEMW : usize = 1 << 19 ; // 524,288 — eff. width 127 (baseline)
7267 pub const MEMW_A : usize = 1 << 19 ; // 524,288 — eff. width 89
7368 pub const DVRM : usize = 1 << 19 ; // 524,288 — eff. width 136
7469 pub const MUL : usize = 1 << 20 ; // 1,048,576 — eff. width 74
75- pub const LT : usize = 1 << 20 ; // 1,048,576 — eff. width 42 (capped at 2^20)
70+ pub const LT : usize = 1 << 21 ; // 2,097,152 — eff. width 42
7671 pub const SHIFT : usize = 1 << 20 ; // 1,048,576 — eff. width 72
77- pub const LOAD : usize = 1 << 20 ; // 1,048,576 — eff. width 33 (capped at 2^20)
78- pub const BRANCH : usize = 1 << 20 ; // 1,048,576 — eff. width 32 (capped at 2^20)
79- pub const MEMW_R : usize = 1 << 20 ; // 1,048,576 — eff. width 31 (capped at 2^20)
72+ pub const LOAD : usize = 1 << 21 ; // 2,097,152 — eff. width 33
73+ pub const BRANCH : usize = 1 << 21 ; // 2,097,152 — eff. width 32
74+ pub const MEMW_R : usize = 1 << 21 ; // 2,097,152 — eff. width 31
8075}
8176
8277/// Per-table maximum row limits, configurable for different environments.
0 commit comments