Skip to content
Draft
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
2 changes: 0 additions & 2 deletions configure.sh
Original file line number Diff line number Diff line change
Expand Up @@ -217,8 +217,6 @@ write_bazelrc "build --host_per_file_copt=external/eigen/.*@-Wno-maybe-uninitial

# The following warnings come from qsim.
# TODO: fix the code in qsim & update TFQ to use the updated version.
write_bazelrc "build --per_file_copt=tensorflow_quantum/core/ops/noise/tfq_.*@-Wno-unused-but-set-variable"
write_bazelrc "build --host_per_file_copt=tensorflow_quantum/core/ops/noise/tfq_.*@-Wno-unused-but-set-variable"
write_bazelrc "build --per_file_copt=tensorflow_quantum/core/ops/math_ops/tfq_.*@-Wno-deprecated-declarations"
write_bazelrc "build --host_per_file_copt=tensorflow_quantum/core/ops/math_ops/tfq_.*@-Wno-deprecated-declarations"

Expand Down
14 changes: 7 additions & 7 deletions tensorflow_quantum/core/ops/math_ops/tfq_inner_product.cc
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ class TfqInnerProductOp : public tensorflow::OpKernel {
"No symbols are allowed in these circuits.")));
}

int max_num_qubits = 0;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
}

Expand Down Expand Up @@ -170,7 +170,7 @@ class TfqInnerProductOp : public tensorflow::OpKernel {
using StateSpace = Simulator::StateSpace;

// Begin simulation.
int largest_nq = 1;
uint64_t largest_nq = 1;
Simulator sim = Simulator(tfq_for);
StateSpace ss = StateSpace(tfq_for);
auto sv = ss.Create(largest_nq);
Expand All @@ -180,7 +180,7 @@ class TfqInnerProductOp : public tensorflow::OpKernel {
// we no longer parallelize over circuits. Each time we encounter a
// a larger circuit we will grow the Statevector as necessary.
for (size_t i = 0; i < fused_circuits.size(); i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];
if (nq > largest_nq) {
// need to switch to larger statespace.
largest_nq = nq;
Expand Down Expand Up @@ -215,7 +215,7 @@ class TfqInnerProductOp : public tensorflow::OpKernel {
}

void ComputeSmall(
const std::vector<int>& num_qubits, const int max_num_qubits,
const std::vector<int>& num_qubits, const uint64_t max_num_qubits,
const std::vector<QsimFusedCircuit>& fused_circuits,
const std::vector<std::vector<QsimFusedCircuit>>& other_fused_circuits,
tensorflow::OpKernelContext* context,
Expand All @@ -229,7 +229,7 @@ class TfqInnerProductOp : public tensorflow::OpKernel {
auto DoWork = [&](int start, int end) {
int old_batch_index = -2;
int cur_batch_index = -1;
int largest_nq = 1;
uint64_t largest_nq = 1;
Comment thread
mhucka marked this conversation as resolved.
Comment thread
mhucka marked this conversation as resolved.
int cur_internal_index;

Simulator sim = Simulator(tfq_for);
Expand All @@ -240,7 +240,7 @@ class TfqInnerProductOp : public tensorflow::OpKernel {
cur_batch_index = i / output_dim_internal_size;
cur_internal_index = i % output_dim_internal_size;

const int nq = num_qubits[cur_batch_index];
const uint64_t nq = num_qubits[cur_batch_index];

// (#679) Just ignore empty program
if (fused_circuits[cur_batch_index].size() == 0) {
Expand Down
14 changes: 7 additions & 7 deletions tensorflow_quantum/core/ops/math_ops/tfq_inner_product_grad.cc
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,8 @@ class TfqInnerProductGradOp : public tensorflow::OpKernel {
"No symbols are allowed in these circuits.")));
}

int max_num_qubits = 0;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
}

Expand Down Expand Up @@ -224,7 +224,7 @@ class TfqInnerProductGradOp : public tensorflow::OpKernel {
using StateSpace = Simulator::StateSpace;

// Begin simulation.
int largest_nq = 1;
uint64_t largest_nq = 1;
Simulator sim = Simulator(tfq_for);
StateSpace ss = StateSpace(tfq_for);
auto sv = ss.Create(largest_nq);
Expand All @@ -236,7 +236,7 @@ class TfqInnerProductGradOp : public tensorflow::OpKernel {
// a larger circuit we will grow the Statevector as necessary.
for (std::vector<std::vector<qsim::GateFused<QsimGate>>>::size_type i = 0;
i < fused_circuits.size(); i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];
if (nq > largest_nq) {
// need to switch to larger statespace.
largest_nq = nq;
Expand Down Expand Up @@ -315,7 +315,7 @@ class TfqInnerProductGradOp : public tensorflow::OpKernel {
}

void ComputeSmall(
const std::vector<int>& num_qubits, const int max_num_qubits,
const std::vector<int>& num_qubits, const uint64_t max_num_qubits,
const std::vector<SymbolMap>& maps,
const std::vector<QsimCircuit>& qsim_circuits,
const std::vector<QsimFusedCircuit>& fused_circuits,
Expand All @@ -335,7 +335,7 @@ class TfqInnerProductGradOp : public tensorflow::OpKernel {
auto DoWork = [&](int start, int end) {
int old_batch_index = -2;
int cur_batch_index = -1;
int largest_nq = 1;
uint64_t largest_nq = 1;
Comment thread
mhucka marked this conversation as resolved.
Comment thread
mhucka marked this conversation as resolved.
int cur_internal_index;

Simulator sim = Simulator(tfq_for);
Expand All @@ -348,7 +348,7 @@ class TfqInnerProductGradOp : public tensorflow::OpKernel {
cur_batch_index = i / output_dim_internal_size;
cur_internal_index = i % output_dim_internal_size;

const int nq = num_qubits[cur_batch_index];
const uint64_t nq = num_qubits[cur_batch_index];

if (cur_batch_index != old_batch_index) {
// We've run into a new state vector we must compute.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,9 @@ class TfqSimulateMPS1DExpectationOp : public tensorflow::OpKernel {

// Find largest circuit for tensor size padding and allocate
// the output tensor.
int max_num_qubits = 0;
int min_num_qubits = 1 << 30;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
uint64_t min_num_qubits = 1 << 30;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
min_num_qubits = std::min(min_num_qubits, num);
}
Expand All @@ -148,7 +148,7 @@ class TfqSimulateMPS1DExpectationOp : public tensorflow::OpKernel {
int bond_dim_;

void ComputeSmall(const std::vector<int>& num_qubits,
const int max_num_qubits,
const uint64_t max_num_qubits,
const std::vector<QsimCircuit>& unfused_circuits,
const std::vector<std::vector<PauliSum>>& pauli_sums,
tensorflow::OpKernelContext* context,
Expand All @@ -163,7 +163,7 @@ class TfqSimulateMPS1DExpectationOp : public tensorflow::OpKernel {
auto DoWork = [&](int start, int end) {
int old_batch_index = -2;
int cur_batch_index = -1;
int largest_nq = 1;
uint64_t largest_nq = 1;
Comment thread
mhucka marked this conversation as resolved.
Comment thread
mhucka marked this conversation as resolved.
int cur_op_index;

// Note: ForArgs in MPSSimulator and MPSStateState are currently unused.
Expand All @@ -176,7 +176,7 @@ class TfqSimulateMPS1DExpectationOp : public tensorflow::OpKernel {
cur_batch_index = i / output_dim_op_size;
cur_op_index = i % output_dim_op_size;

const int nq = num_qubits[cur_batch_index];
const uint64_t nq = num_qubits[cur_batch_index];

// (#679) Just ignore empty program
auto unfused_gates = unfused_circuits[cur_batch_index].gates;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,9 +140,9 @@ class TfqSimulateMPS1DSampledExpectationOp : public tensorflow::OpKernel {

// Find largest circuit for tensor size padding and allocate
// the output tensor.
int max_num_qubits = 0;
int min_num_qubits = 1 << 30;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
uint64_t min_num_qubits = 1 << 30;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
min_num_qubits = std::min(min_num_qubits, num);
}
Expand All @@ -160,7 +160,7 @@ class TfqSimulateMPS1DSampledExpectationOp : public tensorflow::OpKernel {
private:
int bond_dim_;
void ComputeSmall(const std::vector<int>& num_qubits,
const int max_num_qubits,
const uint64_t max_num_qubits,
const std::vector<QsimCircuit>& unfused_circuits,
const std::vector<std::vector<PauliSum>>& pauli_sums,
const std::vector<std::vector<int>>& num_samples,
Expand Down Expand Up @@ -189,7 +189,7 @@ class TfqSimulateMPS1DSampledExpectationOp : public tensorflow::OpKernel {
auto DoWork = [&](int start, int end) {
int old_batch_index = -2;
int cur_batch_index = -1;
int largest_nq = 1;
uint64_t largest_nq = 1;
Comment thread
mhucka marked this conversation as resolved.
Comment thread
mhucka marked this conversation as resolved.
int cur_op_index;

// Note: ForArgs in MPSSimulator and MPSStateState are currently unused.
Expand All @@ -211,7 +211,7 @@ class TfqSimulateMPS1DSampledExpectationOp : public tensorflow::OpKernel {
cur_batch_index = i / output_dim_op_size;
cur_op_index = i % output_dim_op_size;

const int nq = num_qubits[cur_batch_index];
const uint64_t nq = num_qubits[cur_batch_index];

// (#679) Just ignore empty program
auto unfused_gates = unfused_circuits[cur_batch_index].gates;
Expand Down
16 changes: 8 additions & 8 deletions tensorflow_quantum/core/ops/math_ops/tfq_simulate_1d_samples.cc
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ class TfqSimulateMPS1DSamplesOp : public tensorflow::OpKernel {

// Find largest circuit for tensor size padding and allocate
// the output tensor.
int max_num_qubits = 0;
int min_num_qubits = 1 << 30;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
uint64_t min_num_qubits = 1 << 30;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
min_num_qubits = std::min(min_num_qubits, num);
}
Expand All @@ -118,7 +118,7 @@ class TfqSimulateMPS1DSamplesOp : public tensorflow::OpKernel {
tensorflow::errors::InvalidArgument(
"All input circuits require minimum 3 qubits."));

const int output_dim_size = maps.size();
const size_t output_dim_size = maps.size();
tensorflow::TensorShape output_shape;
output_shape.AddDim(output_dim_size);
output_shape.AddDim(num_samples);
Expand All @@ -142,7 +142,7 @@ class TfqSimulateMPS1DSamplesOp : public tensorflow::OpKernel {
int bond_dim_;

void ComputeSmall(const std::vector<int>& num_qubits,
const int max_num_qubits, const int num_samples,
const uint64_t max_num_qubits, const int num_samples,
const std::vector<QsimCircuit>& unfused_circuits,
tensorflow::OpKernelContext* context,
tensorflow::TTypes<int8_t, 3>::Tensor* output_tensor) {
Expand All @@ -154,7 +154,7 @@ class TfqSimulateMPS1DSamplesOp : public tensorflow::OpKernel {
random_gen.Init(tensorflow::random::New64(), tensorflow::random::New64());

auto DoWork = [&](int start, int end) {
int largest_nq = 1;
uint64_t largest_nq = 1;
Comment thread
mhucka marked this conversation as resolved.
// Note: ForArgs in MPSSimulator and MPSStateState are currently unused.
// So, this 1 is a dummy for qsim::For.
Simulator sim = Simulator(1);
Expand All @@ -167,7 +167,7 @@ class TfqSimulateMPS1DSamplesOp : public tensorflow::OpKernel {
tensorflow::random::SimplePhilox rand_source(&local_gen);

for (int i = start; i < end; i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];

if (nq > largest_nq) {
// need to switch to larger statespace.
Expand All @@ -190,7 +190,7 @@ class TfqSimulateMPS1DSamplesOp : public tensorflow::OpKernel {
&results);

for (int j = 0; j < num_samples; j++) {
int64_t q_ind = 0;
uint64_t q_ind = 0;
while (q_ind < max_num_qubits - nq) {
(*output_tensor)(i, j, static_cast<ptrdiff_t>(q_ind)) = -2;
q_ind++;
Expand Down
14 changes: 7 additions & 7 deletions tensorflow_quantum/core/ops/noise/tfq_noisy_expectation.cc
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ class TfqNoisyExpectationOp : public tensorflow::OpKernel {
programs.size(), num_cycles, construct_f);
OP_REQUIRES_OK(context, parse_status);

int max_num_qubits = 0;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
}

Expand Down Expand Up @@ -173,7 +173,7 @@ class TfqNoisyExpectationOp : public tensorflow::OpKernel {
qsim::MultiQubitGateFuser, Simulator>;

// Begin simulation.
int largest_nq = 1;
uint64_t largest_nq = 1;
Simulator sim = Simulator(tfq_for);
StateSpace ss = StateSpace(tfq_for);
auto sv = ss.Create(largest_nq);
Expand All @@ -195,7 +195,7 @@ class TfqNoisyExpectationOp : public tensorflow::OpKernel {
// we no longer parallelize over circuits. Each time we encounter a
// a larger circuit we will grow the Statevector as necessary.
for (size_t i = 0; i < ncircuits.size(); i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];

// (#679) Just ignore empty program
if (ncircuits[i].channels.size() == 0) {
Expand Down Expand Up @@ -256,7 +256,7 @@ class TfqNoisyExpectationOp : public tensorflow::OpKernel {
}

void ComputeSmall(const std::vector<int>& num_qubits,
const int max_num_qubits,
const uint64_t max_num_qubits,
const std::vector<NoisyQsimCircuit>& ncircuits,
const std::vector<std::vector<PauliSum>>& pauli_sums,
const std::vector<std::vector<int>>& num_samples,
Expand Down Expand Up @@ -298,7 +298,7 @@ class TfqNoisyExpectationOp : public tensorflow::OpKernel {
auto DoWork = [&](int start, int end) {
// Begin simulation.
const auto tfq_for = qsim::SequentialFor(1);
int largest_nq = 1;
uint64_t largest_nq = 1;
Simulator sim = Simulator(tfq_for);
StateSpace ss = StateSpace(tfq_for);
auto sv = ss.Create(largest_nq);
Expand All @@ -311,7 +311,7 @@ class TfqNoisyExpectationOp : public tensorflow::OpKernel {
tensorflow::random::SimplePhilox rand_source(&local_gen);

for (size_t i = 0; i < ncircuits.size(); i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];
int rep_offset = rep_offsets[start][i];

// (#679) Just ignore empty program
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,8 @@ class TfqNoisySampledExpectationOp : public tensorflow::OpKernel {
programs.size(), num_cycles, construct_f);
OP_REQUIRES_OK(context, parse_status);

int max_num_qubits = 0;
for (const int num : num_qubits) {
uint64_t max_num_qubits = 0;
for (const uint64_t num : num_qubits) {
max_num_qubits = std::max(max_num_qubits, num);
}

Expand Down Expand Up @@ -174,7 +174,7 @@ class TfqNoisySampledExpectationOp : public tensorflow::OpKernel {
qsim::MultiQubitGateFuser, Simulator>;

// Begin simulation.
int largest_nq = 1;
uint64_t largest_nq = 1;
Simulator sim = Simulator(tfq_for);
StateSpace ss = StateSpace(tfq_for);
auto sv = ss.Create(largest_nq);
Expand All @@ -199,7 +199,7 @@ class TfqNoisySampledExpectationOp : public tensorflow::OpKernel {
// we no longer parallelize over circuits. Each time we encounter a
// a larger circuit we will grow the Statevector as necessary.
for (size_t i = 0; i < ncircuits.size(); i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];

// (#679) Just ignore empty program
if (ncircuits[i].channels.empty()) {
Expand Down Expand Up @@ -260,7 +260,7 @@ class TfqNoisySampledExpectationOp : public tensorflow::OpKernel {
}

void ComputeSmall(const std::vector<int>& num_qubits,
const int max_num_qubits,
const uint64_t max_num_qubits,
const std::vector<NoisyQsimCircuit>& ncircuits,
const std::vector<std::vector<PauliSum>>& pauli_sums,
const std::vector<std::vector<int>>& num_samples,
Expand Down Expand Up @@ -305,7 +305,7 @@ class TfqNoisySampledExpectationOp : public tensorflow::OpKernel {
auto DoWork = [&](int start, int end) {
// Begin simulation.
const auto tfq_for = qsim::SequentialFor(1);
int largest_nq = 1;
uint64_t largest_nq = 1;
Simulator sim = Simulator(tfq_for);
StateSpace ss = StateSpace(tfq_for);
auto sv = ss.Create(largest_nq);
Expand All @@ -317,7 +317,7 @@ class TfqNoisySampledExpectationOp : public tensorflow::OpKernel {
tensorflow::random::SimplePhilox rand_source(&local_gen);

for (size_t i = 0; i < ncircuits.size(); i++) {
int nq = num_qubits[i];
uint64_t nq = num_qubits[i];
int rep_offset = rep_offsets[start][i];

// (#679) Just ignore empty program
Expand Down
Loading
Loading