std::vector<string_option> factory_generator_cuda::get_string_options() { std::vector<string_option> res; std::stringstream default_device_id_list_str; auto default_device_id_list = cuda_multi_running_configuration::get_default_device_id_list(); for(size_t i = 0; i < default_device_id_list.size(); ++i) { if(i != 0) default_device_id_list_str << ","; default_device_id_list_str << default_device_id_list[i]; } res.push_back(string_option("cuda_device_id,D", &cuda_device_id_list_str, default_device_id_list_str.str().c_str(), "Comma-separated list of CUDA device IDs")); #ifdef NNFORGE_USE_NCCL res.push_back(string_option("cuda_communicator_type", &communicator_type, "host_staged", "Type of the communicator for multi-gpu transfers (host_staged, nccl)")); #else res.push_back(string_option("cuda_communicator_type", &communicator_type, "host_staged", "Type of the communicator for multi-gpu transfers (host_staged)")); #endif return res; }
/** * create the test suite for sanei config related tests */ static void sanei_config_suite (void) { /* tests */ inexistent_config (); empty_config (); null_config (); null_attach (); string_option (); int_option (); string_list_option (); word_array_option (); bool_option (); fixed_option (); wrong_range_int_option (); wrong_string_list_option (); wrong_bool_option (); wrong_fixed_option (); /* backend real conf inspired cases */ umax_pp (); snapscan (); }