Ejemplo n.º 1
0
 public Context(ContextOptions opts, Status status)
 {
     Handle = c_api.TFE_NewContext(opts.Handle, status.Handle);
     status.Check(true);
     context_switches = new ContextSwitchStack(defaultExecutionMode == EAGER_MODE);
     initialized      = true;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Initialize handle and devices if not already done so.
        /// </summary>
        public void ensure_initialized()
        {
            if (initialized)
            {
                return;
            }

            Config = MergeConfig();
            FunctionCallOptions.Config = Config;
            var config_str = Config.ToByteArray();

            using var opts   = new ContextOptions();
            using var status = new Status();
            c_api.TFE_ContextOptionsSetConfig(opts.Handle, config_str, (ulong)config_str.Length, status.Handle);
            status.Check(true);
            c_api.TFE_ContextOptionsSetDevicePlacementPolicy(opts.Handle, _device_policy);
            _handle = c_api.TFE_NewContext(opts.Handle, status.Handle);
            status.Check(true);
            initialized = true;
        }