Closed ETatuzova closed 10 months ago
Arithmetization for this test:
constexpr std::size_t ComponentConstantColumns = 2;
constexpr std::size_t LookupConstantColumns = 14;
constexpr std::size_t ComponentSelectorColumns = 30;
constexpr std::size_t LookupSelectorConstantColumns = 6;
constexpr std::size_t WitnessColumns = 15;
constexpr std::size_t PublicInputColumns = 1;
const std::uint32_t max_usable_rows = 1048575; // SHA256 2^20 configuration
Input file: tree512.inp.txt
Troubles:
total time ~ 600 sec per prover
plonk_assignment_table(...) ~ 30 sec per prover
write to file ~ 550 sec per prover
rename takes about 40 min
Improve printing assignment/circuit: https://github.com/NilFoundation/zkLLVM/tree/439-improve-print-time
table_values
vector instead using push
: reduce print time per prover 680 to 600 sec.Suggestions:
table_values
nil::marshalling::types::bundle
Current solution for satisfy customer's needs: generate and print only part circuit/assignment table related to one prover: https://github.com/NilFoundation/zkLLVM/issues/406
On large data assigner needs too much memory and spends too much time for tables and constraint systems generation.