2828#include " litert/ats/common.h"
2929#include " litert/cc/internal/litert_rng.h"
3030#include " litert/cc/litert_expected.h"
31+ #include " litert/cc/litert_options.h"
3132#include " litert/compiler/plugin/compiler_plugin.h"
3233#include " litert/core/filesystem.h"
3334#include " litert/core/model/model_serialize.h"
35+ #include " litert/tools/flags/vendors/mediatek_flags.h" // IWYU pragma: export
36+ #include " litert/tools/flags/vendors/qualcomm_flags.h" // IWYU pragma: export
3437
3538// Seed for the data generation.
3639ABSL_DECLARE_FLAG (std::optional<int >, data_seed);
@@ -59,9 +62,6 @@ ABSL_DECLARE_FLAG(std::string, dont_register);
5962// Regex for explicit inclusions.
6063ABSL_DECLARE_FLAG (std::string, do_register);
6164
62- // Will generate values for f32 tensors in the range of f16 values.
63- ABSL_DECLARE_FLAG (bool , f16_range_for_f32);
64-
6565// Optional list of directories, or model files to add to the test.
6666ABSL_DECLARE_FLAG (std::vector<std::string>, extra_models);
6767
@@ -232,6 +232,12 @@ class AtsConf {
232232 // compilation.
233233 const std::string& SocModel () const { return soc_model_; }
234234
235+ // Litert options to use for the target backend.
236+ const Options& TargetOptions () const { return target_options_; }
237+
238+ // Litert options to use for the reference backend.
239+ const Options& ReferenceOptions () const { return reference_options_; }
240+
235241 AtsConf (const AtsConf&) = delete ;
236242 AtsConf& operator =(const AtsConf&) = delete ;
237243 AtsConf (AtsConf&&) = default ;
@@ -242,13 +248,13 @@ class AtsConf {
242248 bool quiet, std::string dispatch_dir, std::string plugin_dir,
243249 std::regex&& neg_re, std::regex&& pos_re,
244250 std::vector<std::string> extra_models,
245- bool f16_range_for_f32, std::optional<int > data_seed,
246- size_t iters_per_test,
251+ std::optional<int > data_seed, size_t iters_per_test,
247252 std::chrono::milliseconds max_ms_per_test,
248253 bool fail_on_timeout, bool dump_report, std::string csv,
249254 bool compile_mode, std::string models_out, int32_t limit,
250255 std::optional<internal::CompilerPlugin> plugin,
251- std::string soc_manufacturer, std::string soc_model)
256+ std::string soc_manufacturer, std::string soc_model,
257+ Options&& target_options, Options&& reference_options)
252258 : seeds_for_params_(std::move(seeds_for_params)),
253259 backend_(backend),
254260 quiet_(quiet),
@@ -257,7 +263,7 @@ class AtsConf {
257263 neg_re_(std::move(neg_re)),
258264 pos_re_(std::move(pos_re)),
259265 extra_models_(std::move(extra_models)),
260- f16_range_for_f32_(f16_range_for_f32),
266+
261267 data_seed_(data_seed),
262268 iters_per_test_(iters_per_test),
263269 max_ms_per_test_(std::move(max_ms_per_test)),
@@ -269,10 +275,12 @@ class AtsConf {
269275 limit_(limit),
270276 plugin_(std::move(plugin)),
271277 soc_manufacturer_(std::move(soc_manufacturer)),
272- soc_model_(std::move(soc_model)) {
273- if (f16_range_for_f32_) {
274- data_builder_.SetF16InF32 ();
275- }
278+ soc_model_(std::move(soc_model)),
279+ target_options_(std::move(target_options)),
280+ reference_options_(std::move(reference_options)) {
281+ // For now, we will provide default settings for data generation.
282+ // More configurability may be introduced later.
283+ data_builder_.SetSin ();
276284 }
277285
278286 SeedMap seeds_for_params_;
@@ -284,7 +292,6 @@ class AtsConf {
284292 std::regex neg_re_;
285293 std::regex pos_re_;
286294 std::vector<std::string> extra_models_;
287- bool f16_range_for_f32_;
288295 std::optional<int > data_seed_;
289296 size_t iters_per_test_;
290297 std::chrono::milliseconds max_ms_per_test_;
@@ -297,6 +304,8 @@ class AtsConf {
297304 std::optional<internal::CompilerPlugin> plugin_;
298305 std::string soc_manufacturer_;
299306 std::string soc_model_;
307+ Options target_options_;
308+ Options reference_options_;
300309
301310 RandomTensorDataBuilder data_builder_;
302311};
0 commit comments