<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mirrors/arti.git/crates/hashx/src/program.rs, branch arti-1.2.1</title>
<subtitle>mirror of https://gitlab.torproject.org/tpo/core/arti
</subtitle>
<id>http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-1.2.1</id>
<link rel='self' href='http://git.dilluti0n.com/mirrors/arti.git/atom?h=arti-1.2.1'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/'/>
<updated>2023-09-06T10:21:32Z</updated>
<entry>
<title>Switch to FixedCapacityVec 0.1.0 from crates.io</title>
<updated>2023-09-06T10:21:32Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-09-01T09:17:26Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=63db4c61fa3be9fc36e6b5117fa12edbeff33cd9'/>
<id>urn:sha1:63db4c61fa3be9fc36e6b5117fa12edbeff33cd9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hashx: Cleanup around Instruction and NUM_INSTRUCTIONS</title>
<updated>2023-08-25T20:14:24Z</updated>
<author>
<name>Micah Elizabeth Scott</name>
<email>beth@torproject.org</email>
</author>
<published>2023-08-25T20:11:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=2cb50d1be35a4a6623ff318fcf8ac2620521bb1f'/>
<id>urn:sha1:2cb50d1be35a4a6623ff318fcf8ac2620521bb1f</id>
<content type='text'>
This patch tries to make some of the expressions around NUM_INSTRUCTIONS
more convenient. We can import it directly where it's needed, but most
uses are replaced by new type aliases for InstructionArray and
InstructionVec.

No change to any hashx_cachegrind iai benchmarks
</content>
</entry>
<entry>
<title>RFC: hashx: Make Architecture::compile take an array ref</title>
<updated>2023-08-25T17:12:56Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-23T10:11:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=f789f0914b65391b293aac75ab86720028ffa88f'/>
<id>urn:sha1:f789f0914b65391b293aac75ab86720028ffa88f</id>
<content type='text'>
generate_interp_1000x
  Instructions:           219216169 (No change)
  L1 Accesses:            278017243 (-0.000441%)
  L2 Accesses:                 1257 (+4389.286%)
  RAM Accesses:                 415 (-0.479616%)
  Estimated Cycles:       278038053 (+0.001744%)

generate_interp_1000x_c
  Instructions:           272748034 (No change)
  L1 Accesses:            349932964 (No change)
  L2 Accesses:                   76 (-1.298701%)
  RAM Accesses:                 411 (+0.243902%)
  Estimated Cycles:       349947729 (+0.000009%)

generate_compiled_1000x
  Instructions:           256896028 (+0.175731%)
  L1 Accesses:            342543838 (+0.131802%)
  L2 Accesses:               149273 (-10.34924%)
  RAM Accesses:                 810 (-0.246305%)
  Estimated Cycles:       343318553 (+0.106328%)

generate_compiled_1000x_c
  Instructions:           281855218 (No change)
  L1 Accesses:            362569035 (-0.000001%)
  L2 Accesses:                   88 (+1.149425%)
  RAM Accesses:                 473 (+0.211864%)
  Estimated Cycles:       362586030 (+0.000010%)

interp_u64_hash_1000x
  Instructions:            13450926 (No change)
  L1 Accesses:             16622561 (+0.000024%)
  L2 Accesses:                   28 (No change)
  RAM Accesses:                 390 (-1.015228%)
  Estimated Cycles:        16636351 (-0.000817%)

interp_8b_hash_1000x_c
  Instructions:             8618541 (No change)
  L1 Accesses:             12316160 (-0.000008%)
  L2 Accesses:                   80 (No change)
  RAM Accesses:                 433 (+0.231481%)
  Estimated Cycles:        12331715 (+0.000276%)

compiled_u64_hash_100000x
  Instructions:            87311792 (+0.000520%)
  L1 Accesses:             94396598 (+0.000463%)
  L2 Accesses:                  215 (+2.380952%)
  RAM Accesses:                 774 (-0.641849%)
  Estimated Cycles:        94424763 (+0.000304%)

compiled_8b_hash_100000x_c
  Instructions:            91547640 (No change)
  L1 Accesses:             98838166 (-0.000007%)
  L2 Accesses:                  137 (+3.007519%)
  RAM Accesses:                 488 (+0.618557%)
  Estimated Cycles:        98855931 (+0.000119%)
</content>
</entry>
<entry>
<title>Rustfmt</title>
<updated>2023-08-24T16:01:44Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-24T16:01:44Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=b1fd9934a166392e8dc0acada4b5bea376569fb5'/>
<id>urn:sha1:b1fd9934a166392e8dc0acada4b5bea376569fb5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>hashx: FixedCapacityVec: Replace .into_boxed_array method with Try</title>
<updated>2023-08-24T12:50:29Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-24T12:30:38Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=42eea856dd05b82f53e9d71e7ee3225b4f6851a1'/>
<id>urn:sha1:42eea856dd05b82f53e9d71e7ee3225b4f6851a1</id>
<content type='text'>
This version pushes the panic into the call site, which seems much
better.  No change to the iai results.
</content>
</entry>
<entry>
<title>hashx: FixedCapacityVec: Move into its own module</title>
<updated>2023-08-24T12:50:20Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-24T12:23:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=6529846787aa65dc480edcca4a3e9cab1712e75b'/>
<id>urn:sha1:6529846787aa65dc480edcca4a3e9cab1712e75b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rustfmt</title>
<updated>2023-08-23T11:02:24Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-23T11:02:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=99def36084e65491482cd6871adc8972ccfd82ee'/>
<id>urn:sha1:99def36084e65491482cd6871adc8972ccfd82ee</id>
<content type='text'>
</content>
</entry>
<entry>
<title>RFC: hashx: Introduce FixedCapacityVec</title>
<updated>2023-08-23T10:59:24Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-23T10:48:40Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=3deb358cd2dd588baa560d347f1e69d078e28d9d'/>
<id>urn:sha1:3deb358cd2dd588baa560d347f1e69d078e28d9d</id>
<content type='text'>
This is quite shoddy.  It shouldn't be merged without some tidying up
and unit tests and so on.  Also I am confused about the difference
between NUM_INSTRUCTIONS and model::REQUIRED_INSTRUCTIONS.

However:

generate_interp_1000x
  Instructions:           220115418 (-1.147100%)
  L1 Accesses:            278918725 (-0.936103%)
  L2 Accesses:                   25 (-98.46248%)
  RAM Accesses:                 414 (-0.956938%)
  Estimated Cycles:       278933340 (-0.938920%)

generate_interp_1000x_c
  Instructions:           272748034 (No change)
  L1 Accesses:            349932970 (+0.000001%)
  L2 Accesses:                   76 (-1.298701%)
  RAM Accesses:                 405 (-0.491400%)
  Estimated Cycles:       349947525 (-0.000021%)

generate_compiled_1000x
  Instructions:           257344624 (-0.982784%)
  L1 Accesses:            343007206 (-0.753942%)
  L2 Accesses:               152502 (-17.12839%)
  RAM Accesses:                 809 (-0.369458%)
  Estimated Cycles:       343798031 (-0.797384%)

generate_compiled_1000x_c
  Instructions:           281855218 (No change)
  L1 Accesses:            362569043 (+0.000002%)
  L2 Accesses:                   87 (-4.395604%)
  RAM Accesses:                 466 (-0.427350%)
  Estimated Cycles:       362585788 (-0.000023%)

interp_u64_hash_1000x
  Instructions:            13451818 (-0.100680%)
  L1 Accesses:             16623452 (-0.105967%)
  L2 Accesses:                   28 (No change)
  RAM Accesses:                 392 (-1.507538%)
  Estimated Cycles:        16637312 (-0.107138%)

interp_8b_hash_1000x_c
  Instructions:             8618541 (No change)
  L1 Accesses:             12316165 (+0.000032%)
  L2 Accesses:                   80 (-2.439024%)
  RAM Accesses:                 428 (-0.465116%)
  Estimated Cycles:        12331545 (-0.000616%)

compiled_u64_hash_100000x
  Instructions:            87312230 (-1.358594%)
  L1 Accesses:             94397055 (-1.669415%)
  L2 Accesses:                  212 (-0.469484%)
  RAM Accesses:                 776 (-0.767263%)
  Estimated Cycles:        94425275 (-1.669144%)

compiled_8b_hash_100000x_c
  Instructions:            91547640 (No change)
  L1 Accesses:             98838176 (+0.000009%)
  L2 Accesses:                  134 (-4.964539%)
  RAM Accesses:                 481 (-0.414079%)
  Estimated Cycles:        98855681 (-0.000097%)
</content>
</entry>
<entry>
<title>RFC: hashx: Make Program a boxed array</title>
<updated>2023-08-23T10:02:08Z</updated>
<author>
<name>Ian Jackson</name>
<email>ijackson@chiark.greenend.org.uk</email>
</author>
<published>2023-08-23T10:02:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=4ac8f3c4e99340152824cbe537cd951716376c6f'/>
<id>urn:sha1:4ac8f3c4e99340152824cbe537cd951716376c6f</id>
<content type='text'>
generate_interp_1000x
  Instructions:           222669662 (-0.146601%)
  L1 Accesses:            281554367 (+0.069275%)
  L2 Accesses:                 1623 (-90.13494%)
  RAM Accesses:                 418 (No change)
  Estimated Cycles:       281577112 (+0.042908%)

generate_interp_1000x_c
  Instructions:           272748034 (No change)
  L1 Accesses:            349932970 (+0.000001%)
  L2 Accesses:                   74 (No change)
  RAM Accesses:                 407 (-0.731707%)
  Estimated Cycles:       349947585 (-0.000029%)

generate_compiled_1000x
  Instructions:           259898868 (-0.124860%)
  L1 Accesses:            345603941 (+0.055045%)
  L2 Accesses:               193008 (-4.001910%)
  RAM Accesses:                 812 (-0.490196%)
  Estimated Cycles:       346597401 (+0.043228%)

generate_compiled_1000x_c
  Instructions:           281855218 (No change)
  L1 Accesses:            362569040 (+0.000000%)
  L2 Accesses:                   88 (+2.325581%)
  RAM Accesses:                 468 (-0.636943%)
  Estimated Cycles:       362585860 (-0.000026%)

interp_u64_hash_1000x
  Instructions:            13465375 (-0.024687%)
  L1 Accesses:             16641089 (-0.028974%)
  L2 Accesses:                   25 (+8.695652%)
  RAM Accesses:                 398 (+0.505051%)
  Estimated Cycles:        16655144 (-0.028470%)

interp_8b_hash_1000x_c
  Instructions:             8618541 (No change)
  L1 Accesses:             12316165 (+0.000016%)
  L2 Accesses:                   78 (No change)
  RAM Accesses:                 430 (-0.462963%)
  Estimated Cycles:        12331605 (-0.000551%)

compiled_u64_hash_100000x
  Instructions:            88514787 (-0.000365%)
  L1 Accesses:             95999693 (+0.000196%)
  L2 Accesses:                  208 (-0.952381%)
  RAM Accesses:                 782 (-0.255102%)
  Estimated Cycles:        96028103 (+0.000112%)

compiled_8b_hash_100000x_c
  Instructions:            91547640 (No change)
  L1 Accesses:             98838171 (-0.000002%)
  L2 Accesses:                  137 (+3.007519%)
  RAM Accesses:                 483 (-0.412371%)
  Estimated Cycles:        98855761 (-0.000053%)
</content>
</entry>
<entry>
<title>hashx: Use a boxed slice for Program storage</title>
<updated>2023-08-21T22:27:28Z</updated>
<author>
<name>Micah Elizabeth Scott</name>
<email>beth@torproject.org</email>
</author>
<published>2023-08-21T22:19:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/mirrors/arti.git/commit/?id=26b5ae9a3c20e682dde718aae7f54536fea94383'/>
<id>urn:sha1:26b5ae9a3c20e682dde718aae7f54536fea94383</id>
<content type='text'>
This is a very small change that converts our Vec cheaply into a boxed
slice during program generation. Program generation speed shows no
changes, and there's no change when using compiled hashes, but is a
surprisingly effective 10% speedup to interpreted hash execution.

Signed-off-by: Micah Elizabeth Scott &lt;beth@torproject.org&gt;
</content>
</entry>
</feed>
