Commit Graph

93 Commits

Author SHA1 Message Date
Asriel Camora 636501ab86 Remove all concurrency code
Muddled the code too much, and only gave a marginal performance improvement in the grand scheme of things. Other ways to parallelize MCTS will be nicer to implement and could yield better results.
2023-07-07 20:17:35 +02:00
Asriel Camora 3ab50d389e Fix concurrency, add forked simulations 2023-07-07 18:13:27 +02:00
Asriel Camora 7d8fc9ff8f Remove extra stackallocs 2023-07-07 16:35:22 +02:00
Asriel Camora e4d9e3a52e Offload node score buffers 2023-07-07 15:45:42 +02:00
Asriel Camora 1386f9150c Fix concurrency deadlock
I'm stupid and forgot it divided the number of iterations by 8, no wonder it was so fast lmao
2023-07-07 13:01:17 +02:00
Asriel Camora d5a8288439 Merge solver code with static interface
- Breaks backwards compat solver code with last version. Concurrent broke backwards compat because of race conditions with rng, but single is now broken too, despite it being 2x faster (!!!!)
- Literally twice as fast as Rust now in single thread
- Concurrent doesn't work yet, deadlocks somewhere..?
2023-07-07 10:26:59 +02:00
Asriel Camora 2894867195 Smaller minor optimizations 2023-07-06 19:45:59 +02:00
Asriel Camora 1f5da66bc6 Remove deadlock issue, use raw segmented array types 2023-07-05 11:00:15 +02:00
Asriel Camora 4d96fd173f Some multithreaded fixes, deadlocks due to List reads during adds 2023-07-04 17:19:55 +02:00
Asriel Camora 75553de490 Rudamentary locked multithreading
2x faster, but 8x threads.. not very good yet
2023-07-04 09:25:32 +02:00
Asriel Camora e46d1b20fa Use rqrt in child score calculation
Changes sqrt -> rsqrt and div->mul. Reduces latency by 23 -> 8 cycles.
2023-07-04 08:36:41 +02:00
Asriel Camora 76853e2f0d Begin implementing async 2023-07-04 08:42:02 +03:00
Asriel Camora 4b90ded2bb Minor optimizations 2023-07-04 07:40:34 +02:00
Asriel Camora c8aa6818c7 Float CAS intrinsics & move BMI2 intrinsic 2023-07-04 07:29:35 +02:00
Asriel Camora 2e9d1e899e Decoupled simulator instance from solver
multithread soon, but holy crap multithreaded tree stuff is annoying
2023-07-04 00:02:19 +03:00
Asriel Camora ec596f400d Clean up solver code a bit 2023-07-03 18:38:59 +03:00
Asriel Camora 37950b557e Cancellable solving, re-added solving randomization 2023-06-29 01:46:21 -07:00
Asriel Camora 866e30a5bc Simulator changes 2023-06-25 01:01:47 -07:00
Asriel Camora c1caa46838 Minor changes 2023-06-23 00:19:32 -07:00
Asriel Camora 0de1faa112 Add benchmarks 2023-06-21 20:44:13 -07:00
Asriel Camora dba76e319c Fancy simd horizontal max 2023-06-21 16:12:44 -07:00
Asriel Camora 5faaa02f1a Remove threadlocal dependence 2023-06-21 13:20:05 -07:00
Asriel Camora 0f2267dabf Re enable random actions 2023-06-21 11:42:22 -07:00
Asriel Camora f3445f3cb9 Customizable solver config, remove simulator emplace/displace methods 2023-06-21 10:38:08 -07:00
Asriel Camora 11b4b7f6d9 Remove all unncessesary data instantiations 2023-06-21 10:07:16 -07:00
Asriel Camora 1dda7496e9 Remove unused NodeData instantiations 2023-06-21 09:40:37 -07:00
Asriel Camora 270963dd4a Stop using Arena type since everything can be GC'd easily 2023-06-21 09:12:45 -07:00
Asriel Camora 5189ef5d74 last optimization stuff i promise 2023-06-21 07:52:21 -07:00
Asriel Camora 52ad8a4cb0 even more minor optimizations, use random now 2023-06-21 07:36:43 -07:00
Asriel Camora 0b2b80d6b5 More minor optimizations 2023-06-21 06:16:57 -07:00
Asriel Camora fc0ffc11f3 Minor optimizations 2023-06-21 05:58:08 -07:00
Asriel Camora b7393b5c65 Improve simd code 2023-06-20 22:38:26 -07:00
Asriel Camora 47c9339d56 Replace ActionHistory with persistent ActionStatuses 2023-06-20 22:37:59 -07:00
Asriel Camora cdd4f5923e Precompute base progress/quality increases 2023-06-20 17:07:16 -07:00
Asriel Camora 1d0d4cf8ce Vectorize evaluation 2023-06-19 17:02:09 -07:00
Asriel Camora 05ead22448 Some analyzer code style changes 2023-06-19 10:03:57 -07:00
Asriel Camora 6d61e022b6 Fixed ActionSet behavior
IndexOf might be killing the performance though..
2023-06-19 08:52:25 -07:00
Asriel Camora 5edec27977 some changes 2023-06-19 08:15:39 -07:00
Asriel Camora e546ff2dcd Use ActionSet instead of a List 2023-06-18 12:35:32 -07:00
Asriel Camora a6ab098890 Speed up Rust's max_by implementation 2023-06-18 12:28:53 -07:00
Asriel Camora 5e19ed1449 Remove crafty implementation bug behavior 2023-06-18 12:24:36 -07:00
Asriel Camora bae48844b5 fix to be identical to crafty, remove debugs 2023-06-18 03:50:48 -07:00
Asriel Camora e190368d62 Big changes 2
- Split into several projects
- All dalamud/lumina deps are in the plugin
- Crafty/craftingway sim implemented!
- optimizations to follow
2023-06-17 08:50:46 -07:00