Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
12 changes: 6 additions & 6 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ common --verbose_failures
# Windows uses slightly different syntax.
common --enable_platform_specific_config

build:linux --copt=-std=c++17
build:linux --cxxopt=-std=c++17
build:linux --copt=-std=c++20
build:linux --cxxopt=-std=c++20
build:linux --per_file_copt="googletest/.*@-Xassembler,-W"

build:macos --copt=-std=c++17
build:macos --cxxopt=-std=c++17
build:macos --copt=-std=c++20
build:macos --cxxopt=-std=c++20

build:windows --copt=/std:c++17
build:windows --cxxopt=/std:c++17
build:windows --copt=/std:c++20
build:windows --cxxopt=/std:c++20

build --copt=-D_GLIBCXX_USE_CXX11_ABI=1
build --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=1
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ endif()

# Additional miscellanous settings.
# The following settings mirror what is in our hand-written Makefiles.
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

# Print additional useful info.
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ CXX ?= g++
NVCC ?= nvcc
HIPCC ?= hipcc

BASE_CXXFLAGS := -std=c++17
BASE_NVCCFLAGS := -std c++17 -Wno-deprecated-gpu-targets
BASE_CXXFLAGS := -std=c++20
BASE_NVCCFLAGS := -std c++20 -Wno-deprecated-gpu-targets
BASE_HIPCCFLAGS :=

CXXFLAGS := $(BASE_CXXFLAGS) $(CXXFLAGS)
Expand Down
22 changes: 11 additions & 11 deletions apps/make.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
# This file provides an alternate method for building apps in this directory.
# Prefer using the Makefile (e.g. `make -C apps/`) if possible.

g++ -O3 -march=native -fopenmp -o qsim_base.x qsim_base.cc
g++ -O3 -march=native -fopenmp -o qsim_von_neumann.x qsim_von_neumann.cc
g++ -O3 -march=native -fopenmp -o qsim_amplitudes.x qsim_amplitudes.cc
g++ -O3 -march=native -fopenmp -o qsimh_base.x qsimh_base.cc
g++ -O3 -march=native -fopenmp -o qsimh_amplitudes.x qsimh_amplitudes.cc
g++ -O3 -std=c++20 -march=native -fopenmp -o qsim_base.x qsim_base.cc
g++ -O3 -std=c++20 -march=native -fopenmp -o qsim_von_neumann.x qsim_von_neumann.cc
g++ -O3 -std=c++20 -march=native -fopenmp -o qsim_amplitudes.x qsim_amplitudes.cc
g++ -O3 -std=c++20 -march=native -fopenmp -o qsimh_base.x qsimh_base.cc
g++ -O3 -std=c++20 -march=native -fopenmp -o qsimh_amplitudes.x qsimh_amplitudes.cc

if command -v nvcc &>/dev/null; then
nvcc -O3 -o qsim_base_cuda.x qsim_base_cuda.cu
nvcc -O3 -o qsim_qtrajectory_cuda.x qsim_qtrajectory_cuda.cu
nvcc -O3 -std=c++20 -o qsim_base_cuda.x qsim_base_cuda.cu
nvcc -O3 -std=c++20 -o qsim_qtrajectory_cuda.x qsim_qtrajectory_cuda.cu

if [ -n "$CUQUANTUM_ROOT" ]; then
declare -a CUSTATEVECFLAGS
Expand All @@ -35,12 +35,12 @@ if command -v nvcc &>/dev/null; then
"-lcustatevec"
"-lcublas"
)
nvcc -O3 "${CUSTATEVECFLAGS[@]}" \
nvcc -O3 -std=c++20 "${CUSTATEVECFLAGS[@]}" \
-o qsim_base_custatevec.x qsim_base_custatevec.cu
nvcc -O3 "${CUSTATEVECFLAGS[@]}" \
nvcc -O3 -std=c++20 "${CUSTATEVECFLAGS[@]}" \
-o qsim_base_custatevecex.x qsim_base_custatevecex.cu
fi
elif command -v hipcc &>/dev/null; then
hipcc -O3 -o qsim_base_hip.x qsim_base_cuda.cu
hipcc -O3 -o qsim_qtrajectory_hip.x qsim_qtrajectory_cuda.cu
hipcc -O3 -std=c++20 -o qsim_base_hip.x qsim_base_cuda.cu
hipcc -O3 -std=c++20 -o qsim_qtrajectory_hip.x qsim_qtrajectory_cuda.cu
fi
11 changes: 4 additions & 7 deletions apps/qsim_amplitudes.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@

#include "../lib/bitstring.h"
#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_mqubit.h"
#include "../lib/io_file.h"
#include "../lib/operation.h"
#include "../lib/run_qsim.h"
#include "../lib/run_qsim_deprecated.h"
#include "../lib/simmux.h"
#include "../lib/util.h"
#include "../lib/util_cpu.h"
Expand Down Expand Up @@ -160,12 +161,8 @@ int main(int argc, char* argv[]) {
return 1;
}

Circuit<Operation<float>> circuit;
unsigned maxtime = opt.times.back();
if (!CircuitQsimParser<IOFile>::FromFile(maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<float>::Run(cstr, opt.times.back());

if (opt.denormals_are_zeros) {
SetFlushToZeroAndDenormalsAreZeros();
Expand Down
10 changes: 4 additions & 6 deletions apps/qsim_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,12 @@
#include <string>

#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_mqubit.h"
#include "../lib/io_file.h"
#include "../lib/operation.h"
#include "../lib/run_qsim.h"
#include "../lib/run_qsim_deprecated.h"
#include "../lib/simmux.h"
#include "../lib/util_cpu.h"

Expand Down Expand Up @@ -114,11 +115,8 @@ int main(int argc, char* argv[]) {
return 1;
}

Circuit<Operation<float>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<float>::Run(cstr, opt.maxtime);

if (opt.denormals_are_zeros) {
SetFlushToZeroAndDenormalsAreZeros();
Expand Down
10 changes: 4 additions & 6 deletions apps/qsim_base_cuda.cu
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,12 @@
#include <string>

#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_mqubit.h"
#include "../lib/io_file.h"
#include "../lib/operation.h"
#include "../lib/run_qsim.h"
#include "../lib/run_qsim_deprecated.h"
#include "../lib/simulator_cuda.h"

struct Options {
Expand Down Expand Up @@ -114,11 +115,8 @@ int main(int argc, char* argv[]) {

using fp_type = float;

Circuit<Operation<fp_type>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<fp_type>::Run(cstr, opt.maxtime);

struct Factory {
using Simulator = qsim::SimulatorCUDA<fp_type>;
Expand Down
10 changes: 4 additions & 6 deletions apps/qsim_base_custatevec.cu
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@
#include <custatevec.h>

#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_mqubit.h"
#include "../lib/io_file.h"
#include "../lib/operation.h"
#include "../lib/run_qsim.h"
#include "../lib/run_qsim_deprecated.h"
#include "../lib/simulator_custatevec.h"
#include "../lib/util_custatevec.h"

Expand Down Expand Up @@ -108,11 +109,8 @@ int main(int argc, char* argv[]) {

using fp_type = float;

Circuit<Operation<fp_type>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<fp_type>::Run(cstr, opt.maxtime);

struct Factory {
using Simulator = qsim::SimulatorCuStateVec<fp_type>;
Expand Down
8 changes: 3 additions & 5 deletions apps/qsim_base_custatevecex.cu
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <string>

#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/io_file.h"
#include "../lib/multiprocess_custatevecex.h"
Expand Down Expand Up @@ -106,11 +107,8 @@ int main(int argc, char* argv[]) {

using fp_type = float;

Circuit<Operation<fp_type>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<fp_type>::Run(cstr, opt.maxtime);

struct Factory {
using Simulator = qsim::SimulatorCuStateVecEx<fp_type>;
Expand Down
11 changes: 4 additions & 7 deletions apps/qsim_qtrajectory_cuda.cu
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@

#include "../lib/channels_qsim.h"
#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/expect.h"
#include "../lib/fuser_mqubit.h"
#include "../lib/io_file.h"
#include "../lib/operation.h"
#include "../lib/qtrajectory.h"
#include "../lib/run_qsim.h"
#include "../lib/run_qsim_deprecated.h"
#include "../lib/simulator_cuda.h"

struct Options {
Expand Down Expand Up @@ -223,12 +224,8 @@ int main(int argc, char* argv[]) {
return 1;
}

Circuit<Operation<fp_type>> circuit;
unsigned maxtime = opt.times.back();
if (!CircuitQsimParser<IOFile>::FromFile(maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<fp_type>::Run(cstr, opt.times.back());

if (opt.times.size() == 1
&& opt.times[0] == std::numeric_limits<unsigned>::max()) {
Expand Down
10 changes: 4 additions & 6 deletions apps/qsim_von_neumann.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@
#include <string>

#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_mqubit.h"
#include "../lib/io_file.h"
#include "../lib/operation.h"
#include "../lib/run_qsim.h"
#include "../lib/run_qsim_deprecated.h"
#include "../lib/simmux.h"
#include "../lib/util_cpu.h"

Expand Down Expand Up @@ -99,11 +100,8 @@ int main(int argc, char* argv[]) {
return 1;
}

Circuit<Operation<float>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<float>::Run(cstr, opt.maxtime);

if (opt.denormals_are_zeros) {
SetFlushToZeroAndDenormalsAreZeros();
Expand Down
8 changes: 3 additions & 5 deletions apps/qsimh_amplitudes.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include "../lib/bitstring.h"
#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_basic.h"
#include "../lib/io_file.h"
Expand Down Expand Up @@ -174,11 +175,8 @@ int main(int argc, char* argv[]) {
return 1;
}

Circuit<Operation<float>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<float>::Run(cstr, opt.maxtime);

if (!ValidatePart1(circuit.num_qubits, opt.part1)) {
return 1;
Expand Down
8 changes: 3 additions & 5 deletions apps/qsimh_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include "../lib/bitstring.h"
#include "../lib/circuit_qsim_parser.h"
#include "../lib/classical_control_util.h"
#include "../lib/formux.h"
#include "../lib/fuser_basic.h"
#include "../lib/io_file.h"
Expand Down Expand Up @@ -136,11 +137,8 @@ int main(int argc, char* argv[]) {
return 1;
}

Circuit<Operation<float>> circuit;
if (!CircuitQsimParser<IOFile>::FromFile(opt.maxtime, opt.circuit_file,
circuit)) {
return 1;
}
auto cstr = cc::ReadFile(opt.circuit_file);
auto circuit = CircuitQSimParser<float>::Run(cstr, opt.maxtime);

if (!ValidatePart1(circuit.num_qubits, opt.part1)) {
return 1;
Expand Down
Loading
Loading