feat(optimizer): option to disable optimizer cache

--optimizer-no-cache-on-disk
This commit is contained in:
rudy
2022-10-28 10:38:17 +02:00
committed by rudy-6-4
parent d15c9822db
commit 4ed0c01d8e
4 changed files with 12 additions and 1 deletions

View File

@@ -26,6 +26,7 @@ constexpr bool DEFAULT_STRATEGY_V0 = false;
constexpr bool DEFAULT_USE_GPU_CONSTRAINTS = false;
constexpr concrete_optimizer::Encoding DEFAULT_ENCODING =
concrete_optimizer::Encoding::Auto;
constexpr bool DEFAULT_CACHE_ON_DISK = true;
struct Config {
double p_error;
@@ -36,6 +37,7 @@ struct Config {
double fallback_log_norm_woppbs;
bool use_gpu_constraints;
concrete_optimizer::Encoding encoding;
bool cache_on_disk;
};
constexpr Config DEFAULT_CONFIG = {
@@ -47,6 +49,7 @@ constexpr Config DEFAULT_CONFIG = {
DEFAULT_FALLBACK_LOG_NORM_WOPPBS,
DEFAULT_USE_GPU_CONSTRAINTS,
DEFAULT_ENCODING,
DEFAULT_CACHE_ON_DISK,
};
using Dag = rust::Box<concrete_optimizer::OperationDag>;

View File

@@ -30,6 +30,7 @@ concrete_optimizer::Options options_from_config(optimizer::Config config) {
/* .default_log_norm2_woppbs = */ config.fallback_log_norm_woppbs,
/* .use_gpu_constraints = */ config.use_gpu_constraints,
/* .encoding = */ config.encoding,
/* .cache_on_disk = */ config.cache_on_disk,
};
return options;
}

View File

@@ -249,6 +249,12 @@ llvm::cl::opt<concrete_optimizer::Encoding> optimizerEncoding(
llvm::cl::values(clEnumValN(concrete_optimizer::Encoding::Native, "crt",
"Chineese Reminder Theorem representation")));
llvm::cl::opt<bool> optimizerNoCacheOnDisk(
"optimizer-no-cache-on-disk",
llvm::cl::desc("Optimizer cache is sync from/to disk. Usefull to debug "
"cache issues."),
llvm::cl::init(false));
llvm::cl::list<int64_t> fhelinalgTileSizes(
"fhelinalg-tile-sizes",
llvm::cl::desc(
@@ -401,6 +407,7 @@ cmdlineCompilationOptions() {
options.optimizerConfig.display = cmdline::displayOptimizerChoice;
options.optimizerConfig.strategy_v0 = cmdline::optimizerV0;
options.optimizerConfig.encoding = cmdline::optimizerEncoding;
options.optimizerConfig.cache_on_disk = !cmdline::optimizerNoCacheOnDisk;
if (!std::isnan(options.optimizerConfig.global_p_error) &&
options.optimizerConfig.strategy_v0) {