ignis 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +15 -0
  3. data/lib/ignis.rb +94 -0
  4. data/lib/nnw/platform.rb +304 -0
  5. data/lib/nnw/shared/event_bus.rb +240 -0
  6. data/lib/nnw/shared/ffi_loader.rb +63 -0
  7. data/lib/nnw/shared/memory_contract.rb +204 -0
  8. data/lib/nnw/shared/nv_array.rb +710 -0
  9. data/lib/nnw/shared/recovery_protocol.rb +307 -0
  10. data/lib/nvruby/configuration.rb +217 -0
  11. data/lib/nvruby/cuda/device.rb +275 -0
  12. data/lib/nvruby/cuda/device_props.rb +202 -0
  13. data/lib/nvruby/cuda/graph.rb +265 -0
  14. data/lib/nvruby/cuda/graph_bindings.rb +119 -0
  15. data/lib/nvruby/cuda/library_loader.rb +285 -0
  16. data/lib/nvruby/cuda/memory.rb +410 -0
  17. data/lib/nvruby/cuda/runtime_api.rb +804 -0
  18. data/lib/nvruby/cuda/stream.rb +234 -0
  19. data/lib/nvruby/dtype.rb +139 -0
  20. data/lib/nvruby/epilogues.rb +438 -0
  21. data/lib/nvruby/errors.rb +303 -0
  22. data/lib/nvruby/half.rb +97 -0
  23. data/lib/nvruby/jit/compiled_kernel.rb +80 -0
  24. data/lib/nvruby/jit/compiler.rb +231 -0
  25. data/lib/nvruby/jit/driver_api_bindings.rb +363 -0
  26. data/lib/nvruby/jit/kernel.rb +240 -0
  27. data/lib/nvruby/jit/kernel_module.rb +133 -0
  28. data/lib/nvruby/jit/kernels/activations.rb +179 -0
  29. data/lib/nvruby/jit/kernels/attention.rb +504 -0
  30. data/lib/nvruby/jit/kernels/elementwise.rb +488 -0
  31. data/lib/nvruby/jit/kernels/loss.rb +213 -0
  32. data/lib/nvruby/jit/kernels/normalization.rb +200 -0
  33. data/lib/nvruby/jit/kernels/optimizer.rb +193 -0
  34. data/lib/nvruby/jit/nvrtc_bindings.rb +282 -0
  35. data/lib/nvruby/linalg/cublas_bindings.rb +295 -0
  36. data/lib/nvruby/linalg/cublaslt_bindings.rb +342 -0
  37. data/lib/nvruby/linalg/epilog.rb +67 -0
  38. data/lib/nvruby/linalg/matmul.rb +247 -0
  39. data/lib/nvruby/linalg/matmul_plan.rb +229 -0
  40. data/lib/nvruby/linalg/optimized_matmul.rb +412 -0
  41. data/lib/nvruby/memory/cuda_async_memory_resource.rb +123 -0
  42. data/lib/nvruby/memory/cuda_memory_resource.rb +68 -0
  43. data/lib/nvruby/memory/device_memory_resource.rb +106 -0
  44. data/lib/nvruby/memory/pinned_host_memory_resource.rb +112 -0
  45. data/lib/nvruby/memory/pool_memory_resource.rb +242 -0
  46. data/lib/nvruby/memory/stats.rb +107 -0
  47. data/lib/nvruby/memory.rb +124 -0
  48. data/lib/nvruby/version.rb +5 -0
  49. metadata +108 -0
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ignis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - NNW / Ignis contributors
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: ffi
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
26
+ description: |
27
+ Ignis is the foundation of a CUDA-backed deep-learning ecosystem for Ruby that
28
+ actually targets native Windows. It provides a GPU n-dimensional array
29
+ (Ignis::NDArray), CUDA memory/device management, a runtime kernel compiler
30
+ (NVRTC) with a batteries-included kernel library, fp16/bf16 conversion, and
31
+ cuBLAS GEMM. Kernels are compiled at runtime and libraries are bound via FFI —
32
+ there are NO C extensions, so installation needs no compiler or devkit (the
33
+ usual Windows native-gem killer). Requires an NVIDIA GPU + CUDA toolkit/runtime.
34
+ executables: []
35
+ extensions: []
36
+ extra_rdoc_files: []
37
+ files:
38
+ - README.md
39
+ - lib/ignis.rb
40
+ - lib/nnw/platform.rb
41
+ - lib/nnw/shared/event_bus.rb
42
+ - lib/nnw/shared/ffi_loader.rb
43
+ - lib/nnw/shared/memory_contract.rb
44
+ - lib/nnw/shared/nv_array.rb
45
+ - lib/nnw/shared/recovery_protocol.rb
46
+ - lib/nvruby/configuration.rb
47
+ - lib/nvruby/cuda/device.rb
48
+ - lib/nvruby/cuda/device_props.rb
49
+ - lib/nvruby/cuda/graph.rb
50
+ - lib/nvruby/cuda/graph_bindings.rb
51
+ - lib/nvruby/cuda/library_loader.rb
52
+ - lib/nvruby/cuda/memory.rb
53
+ - lib/nvruby/cuda/runtime_api.rb
54
+ - lib/nvruby/cuda/stream.rb
55
+ - lib/nvruby/dtype.rb
56
+ - lib/nvruby/epilogues.rb
57
+ - lib/nvruby/errors.rb
58
+ - lib/nvruby/half.rb
59
+ - lib/nvruby/jit/compiled_kernel.rb
60
+ - lib/nvruby/jit/compiler.rb
61
+ - lib/nvruby/jit/driver_api_bindings.rb
62
+ - lib/nvruby/jit/kernel.rb
63
+ - lib/nvruby/jit/kernel_module.rb
64
+ - lib/nvruby/jit/kernels/activations.rb
65
+ - lib/nvruby/jit/kernels/attention.rb
66
+ - lib/nvruby/jit/kernels/elementwise.rb
67
+ - lib/nvruby/jit/kernels/loss.rb
68
+ - lib/nvruby/jit/kernels/normalization.rb
69
+ - lib/nvruby/jit/kernels/optimizer.rb
70
+ - lib/nvruby/jit/nvrtc_bindings.rb
71
+ - lib/nvruby/linalg/cublas_bindings.rb
72
+ - lib/nvruby/linalg/cublaslt_bindings.rb
73
+ - lib/nvruby/linalg/epilog.rb
74
+ - lib/nvruby/linalg/matmul.rb
75
+ - lib/nvruby/linalg/matmul_plan.rb
76
+ - lib/nvruby/linalg/optimized_matmul.rb
77
+ - lib/nvruby/memory.rb
78
+ - lib/nvruby/memory/cuda_async_memory_resource.rb
79
+ - lib/nvruby/memory/cuda_memory_resource.rb
80
+ - lib/nvruby/memory/device_memory_resource.rb
81
+ - lib/nvruby/memory/pinned_host_memory_resource.rb
82
+ - lib/nvruby/memory/pool_memory_resource.rb
83
+ - lib/nvruby/memory/stats.rb
84
+ - lib/nvruby/version.rb
85
+ homepage: https://github.com/tigel-agm/Ignis
86
+ licenses:
87
+ - MIT
88
+ metadata:
89
+ source_code_uri: https://github.com/tigel-agm/Ignis
90
+ rubygems_mfa_required: 'true'
91
+ rdoc_options: []
92
+ require_paths:
93
+ - lib
94
+ required_ruby_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '3.1'
99
+ required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ requirements: []
105
+ rubygems_version: 3.6.9
106
+ specification_version: 4
107
+ summary: GPU compute for Ruby on Windows — CUDA arrays, kernels, and BLAS via FFI/NVRTC
108
+ test_files: []