Exemplo n.º 1
0
        public JittedModule(String ptx, CUmodule handle)
        {
            CudaDriver.Ensure();
            Ptx = ptx.AssertNotNull();
            Handle = handle.AssertThat(h => h.IsNotNull);

            var match = Regex.Match(Ptx, @"\.entry\s*(?<entrypoint>\w*?)\s*\(");
            Functions = match.Unfoldi(m => m.NextMatch(), m => m.Success).Select(m =>
            {
                var name = match.Result("${entrypoint}");
                var hfunc = nvcuda.cuModuleGetFunction(this, name);
                return new JittedFunction(hfunc, name);
            }).ToReadOnly();
        }