int main(int argc, char *argv[]) { // initialize the default values numDevices = 1; verbose = CL_FALSE; no_print_logo = CL_FALSE; strncpy(filename, "kernels.cl", CL_MAX_PATHSIZE); //strncpy(outfile, "a.out", CL_MAX_PATHSIZE); memset(outfile, 0, sizeof(outfile)); //strncpy(precomp, "kernels.h", CL_MAX_PATHSIZE); memset(precomp, 0, sizeof(precomp)); if (argc > 1) { cl_environment_t *pEnv = NULL; cl_uint dev_type = CL_DEVICE_TYPE_DEFAULT; clOptions(argc, argv); print_logo(); if (verbose && filename[0] != '\0') printf("Compiling File: %s\n",filename); if (verbose && cl_args[0] != '\0') printf("CL ARGS: %s\n",cl_args); if (verbose && precomp[0] != '\0') printf("Precompiled Header: %s\n", precomp); dev_type = clGetTypeFromString(cl_device_types); if (verbose) printf("%u devices as type 0x%08x\n",numDevices,dev_type); // process the kernel pEnv = clCreateEnvironment(filename, dev_type, numDevices, notify, cl_args); if (pEnv == NULL) { printf("ERROR: Failed to compile %s\n", filename); } clDeleteEnvironment(pEnv); } else { cl_uint i; print_logo(); printf("Usage:\n$ %s [OPTIONS] \n", argv[0]); for (i = 0; i < numOpts; i++) { printf("Option %s\t\t%s\n",options[i].arg, options[i].description); } printf("Example:\n$ %s -f %s -d %u -o %s\n",argv[0],filename,numDevices,outfile); } return 0; }
TModelOptions InitOptions(const int argc, const char** argv, TString name, std::set<int> fields) { TProtoOptions<NDnnProto::TDnnOptions> clOptions(argc, argv, NStr::TStringBuilder() << "Dynamic neural network model, " << name, fields); NDnnProto::TDnnOptions options; if (!clOptions.Parse(options)) { exit(1); } if (options.verbose()) { TLog::Instance().SetLogLevel(TLog::DEBUG_LEVEL); } TModelOptions opts; opts.Name = name; if (options.has_config()) { opts.ConfigFile = options.config(); NDnnProto::TConfig config; ReadProtoTextFromFile(*opts.ConfigFile, config); opts.Port = config.simconfiguration().port(); } if (options.has_inputspikes()) { opts.InputSpikesFile = options.inputspikes(); } if (options.has_port()) { opts.Port = options.port(); } if (options.has_output()) { opts.OutputSpikesFile = options.output(); } if (options.has_stat()) { opts.StatFile = options.stat(); } if (options.has_jobs()) { opts.Jobs = options.jobs(); } if (options.has_load()) { opts.ModelLoad = options.load(); } if (options.has_save()) { opts.ModelSave = options.save(); } return opts; }