Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Execution Trace #4623

Merged
merged 71 commits into from
Feb 21, 2024
Merged
Changes from 1 commit
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
f0310c2
Initial pass at ETM; construct blocks from builder
ledwards2225 Feb 9, 2024
c40162e
WiP method to test new pkey vs old one
ledwards2225 Feb 10, 2024
82790dc
basic pkey polynomials agree
ledwards2225 Feb 11, 2024
31b911c
simplify wire and sel poly construction
ledwards2225 Feb 12, 2024
c982200
perm polys agree
ledwards2225 Feb 12, 2024
86c8901
pkey using ETM in instance constructor is consistent w original
ledwards2225 Feb 12, 2024
2fd68c8
all polys agree for GU flavor
ledwards2225 Feb 12, 2024
3d3702c
todo comments
ledwards2225 Feb 13, 2024
8bcea37
cleanup plonk circuit size stuff
ledwards2225 Feb 13, 2024
1953ce9
simplify plonk circuit size and share sorted list
ledwards2225 Feb 13, 2024
efc4480
share table poly construction
ledwards2225 Feb 13, 2024
1445daa
move more stuff to methods in plonk
ledwards2225 Feb 13, 2024
285340e
initial structure of new plonk create prover
ledwards2225 Feb 13, 2024
cc525fc
try to fix build errors
ledwards2225 Feb 13, 2024
c806c32
another fix
ledwards2225 Feb 13, 2024
7947f08
woops
ledwards2225 Feb 13, 2024
9855ae4
wtf
ledwards2225 Feb 13, 2024
a4aa824
simplify
ledwards2225 Feb 13, 2024
066eca6
fix lookups size bug, with todo
ledwards2225 Feb 14, 2024
0e6320e
looks good with honk specific trace generate
ledwards2225 Feb 14, 2024
9653d02
Merge branch 'master' into lde/etm_poc
ledwards2225 Feb 14, 2024
c0e15fe
new compute prover method works for plonk, no etm yet
ledwards2225 Feb 14, 2024
7408b26
execution trace works for plonk
ledwards2225 Feb 14, 2024
849336d
Merge branch 'master' into lde/etm_poc
ledwards2225 Feb 14, 2024
be5251d
clean up permutation mapping
ledwards2225 Feb 15, 2024
045270c
Merge branch 'master' into lde/etm_poc
ledwards2225 Feb 15, 2024
8e1b322
test utilize trace everywhere
ledwards2225 Feb 15, 2024
10c0527
simplify unique ptr construction
ledwards2225 Feb 15, 2024
dba3961
exec trace for standard honk
ledwards2225 Feb 15, 2024
54e32fc
Merge branch 'master' into lde/exec_trace
ledwards2225 Feb 15, 2024
e011629
delete old lib methods
ledwards2225 Feb 15, 2024
a46bce8
more dead code deletion
ledwards2225 Feb 15, 2024
0546b61
cleanup
ledwards2225 Feb 15, 2024
86c6f2d
cleanup and go back to changing lookup_gates instead of copy
ledwards2225 Feb 15, 2024
2a86ccf
simplify plonk permuation stuff
ledwards2225 Feb 15, 2024
a2c5a87
fix build
ledwards2225 Feb 15, 2024
e8918dc
yay fix zero_idx bug
ledwards2225 Feb 16, 2024
c5a9b1b
its only tests of locations of data in the proof thats failing..
ledwards2225 Feb 16, 2024
b9284c5
disable js test to see that sweet green
ledwards2225 Feb 16, 2024
b1c15ac
class is static
ledwards2225 Feb 16, 2024
436fba2
split exec trace into hpp/cpp
ledwards2225 Feb 16, 2024
a901ce0
Merge branch 'master' into lde/exec_trace
ledwards2225 Feb 16, 2024
999f3fb
one linking option but circular dep
ledwards2225 Feb 16, 2024
3e5fa8e
typename
ledwards2225 Feb 16, 2024
1188ace
share mem read write population method
ledwards2225 Feb 17, 2024
ca4ebbc
reinstate joinsplit tests
ledwards2225 Feb 18, 2024
ee6378a
how about this
ledwards2225 Feb 18, 2024
e31ea7a
remove some special cases
ledwards2225 Feb 18, 2024
c9b21a1
neutral change breaks plonk acir
ledwards2225 Feb 18, 2024
df6b023
clean up prover instance constructor
ledwards2225 Feb 18, 2024
2ba6853
cleanup
ledwards2225 Feb 18, 2024
1b82b35
Merge branch 'master' into lde/exec_trace
ledwards2225 Feb 18, 2024
df1032b
template and resuse plonk prover construction
ledwards2225 Feb 19, 2024
9a46c19
cleanup and comments
ledwards2225 Feb 19, 2024
a87cfda
move pkey construction out of exec trace to simplify dependency
ledwards2225 Feb 19, 2024
d565070
add TODO with old issue
ledwards2225 Feb 19, 2024
edb6230
update some comments and TODOs
ledwards2225 Feb 19, 2024
6777369
constify some stuff
ledwards2225 Feb 19, 2024
5c32774
comments, cleanup and naming
ledwards2225 Feb 19, 2024
2a2a52a
make proper goblin block and simplify trace block construction
ledwards2225 Feb 19, 2024
8580f20
fix pub input flag
ledwards2225 Feb 19, 2024
b846966
clean up arithmetization
ledwards2225 Feb 19, 2024
4e391d6
use block for goblin gates
ledwards2225 Feb 19, 2024
f6fc114
Merge branch 'master' into lde/exec_trace
ledwards2225 Feb 20, 2024
93c8e8e
dont need to pass dyadic size independently
ledwards2225 Feb 20, 2024
5ee1619
Merge branch 'master' into lde/exec_trace
ledwards2225 Feb 20, 2024
7c22c87
add todo with ref to next issue
ledwards2225 Feb 20, 2024
a98ee4e
Merge branch 'master' into lde/exec_trace
ledwards2225 Feb 21, 2024
55439e9
Notes
ledwards2225 Feb 21, 2024
72c33b0
issue to move some stuff inside trace generation
ledwards2225 Feb 21, 2024
c45bf42
more gcc workarounds
ludamad0 Feb 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
dont need to pass dyadic size independently
ledwards2225 committed Feb 20, 2024
commit 93c8e8ea6d7af9aebbd3533c21e13a57413a472d
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ std::shared_ptr<plonk::proving_key> StandardComposer::compute_proving_key(const
subgroup_size, circuit_constructor.public_inputs.size(), crs, CircuitType::STANDARD);

// Construct and add to proving key the wire, selector and copy constraint polynomials
Trace::generate(circuit_constructor, subgroup_size, circuit_proving_key);
Trace::generate(circuit_constructor, circuit_proving_key);

// Make all selectors nonzero
enforce_nonzero_selector_polynomials(circuit_constructor, circuit_proving_key.get());
Original file line number Diff line number Diff line change
@@ -166,7 +166,7 @@ std::shared_ptr<proving_key> UltraComposer::compute_proving_key(CircuitBuilder&
std::make_shared<plonk::proving_key>(subgroup_size, circuit.public_inputs.size(), crs, CircuitType::ULTRA);

// Construct and add to proving key the wire, selector and copy constraint polynomials
Trace::generate(circuit, subgroup_size, circuit_proving_key);
Trace::generate(circuit, circuit_proving_key);

enforce_nonzero_selector_polynomials(circuit, circuit_proving_key.get());

Original file line number Diff line number Diff line change
@@ -7,11 +7,10 @@ namespace bb {

template <class Flavor>
void ExecutionTrace_<Flavor>::generate(const Builder& builder,
size_t dyadic_circuit_size,
const std::shared_ptr<typename Flavor::ProvingKey>& proving_key)
{
// Construct wire polynomials, selector polynomials, and copy cycles from raw circuit data
auto trace_data = construct_trace_data(builder, dyadic_circuit_size);
auto trace_data = construct_trace_data(builder, proving_key->circuit_size);

add_wires_and_selectors_to_proving_key(trace_data, builder, proving_key);

Original file line number Diff line number Diff line change
@@ -52,9 +52,8 @@ template <class Flavor> class ExecutionTrace_ {
* @brief Given a circuit, populate a proving key with wire polys, selector polys, and sigma/id polys
*
* @param builder
* @param dyadic_circuit_size
*/
static void generate(const Builder& builder, size_t dyadic_circuit_size, const std::shared_ptr<ProvingKey>&);
static void generate(const Builder& builder, const std::shared_ptr<ProvingKey>&);

private:
/**
Original file line number Diff line number Diff line change
@@ -69,7 +69,7 @@ template <class Flavor> class ProverInstance_ {
proving_key = std::make_shared<ProvingKey>(dyadic_circuit_size, circuit.public_inputs.size());

// Construct and add to proving key the wire, selector and copy constraint polynomials
Trace::generate(circuit, dyadic_circuit_size, proving_key);
Trace::generate(circuit, proving_key);

// If Goblin, construct the ECC op queue wire and databus polynomials
if constexpr (IsGoblinFlavor<Flavor>) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should go in the generate function?