Skip to content

Commit 15518ce

Browse files
Merge pull request #272 from SKaiNET-developers/release/0.6.0
Release/0.6.0
2 parents 59a6b8d + 6a209c2 commit 15518ce

6 files changed

Lines changed: 55 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## [0.6.0] - 2025-12-31
4+
5+
### Added
6+
- StableHLO implementation and E2E CLI app for compiling models to CUDA via IREE.
7+
- `ArduinoCodegen` for exporting models to standalone C99 code with static memory allocation, optimized for Arduino.
8+
- KSP-based generation of `TracingOps` for automated recording pipeline updates.
9+
- Initial implementation of `skainet-compile-hlo` for high-level optimization.
10+
11+
### Changed
12+
- Improved CUDA backend strategy and IREE integration.
13+
- Optimized long-running property tests for C code generation.
14+
- Refactored `TracingTensorOps` to use execution context for code generation.
15+
316
## [0.5.1] - 2025-12-26
417

518
### Added

README.md

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ Read the [Deep Technical Explanation](docs/arduino-c-codegen.md) for more detail
9999

100100
```kotlin
101101
dependencies {
102-
implementation("sk.ainet.core:SKaiNET-lang-core:0.5.1")
103-
implementation("sk.ainet.core:SKaiNET-backend-cpu:0.5.1")
102+
implementation("sk.ainet.core:SKaiNET-lang-core:0.6.0")
103+
implementation("sk.ainet.core:SKaiNET-backend-cpu:0.6.0")
104104
}
105105
// Ready to build & run in ~8 minutes
106106
```
@@ -111,7 +111,7 @@ dependencies {
111111
- In Kotlin Notebooks for quick exploration
112112
- With sample projects to learn patterns
113113

114-
See also CHANGELOG for what’s new in 0.5.1.
114+
See also CHANGELOG for what’s new in 0.6.0.
115115

116116
## Quick start
117117

@@ -126,15 +126,15 @@ dependencyResolutionManagement {
126126

127127
dependencies {
128128
// minimal dependency with simple CPU backend
129-
implementation("sk.ainet.core:SKaiNET-lang-core:0.5.1")
130-
implementation("sk.ainet.core:SKaiNET-backend-cpu:0.5.1")
129+
implementation("sk.ainet.core:SKaiNET-lang-core:0.6.0")
130+
implementation("sk.ainet.core:SKaiNET-backend-cpu:0.6.0")
131131

132132
// simple model zoo
133-
implementation("sk.ainet.core:SKaiNET-lang-models:0.5.1")
133+
implementation("sk.ainet.core:SKaiNET-lang-models:0.6.0")
134134

135135
// Optional I/O (e.g., GGUF loader, JSON)
136-
implementation("sk.ainet.core:SKaiNET-io-core:0.5.1")
137-
implementation("sk.ainet.core:SKaiNET-io-gguf:0.5.1")
136+
implementation("sk.ainet.core:SKaiNET-io-core:0.6.0")
137+
implementation("sk.ainet.core:SKaiNET-io-gguf:0.6.0")
138138
}
139139
```
140140

@@ -144,7 +144,7 @@ Maven:
144144
<dependency>
145145
<groupId>sk.ainet.core</groupId>
146146
<artifactId>SKaiNET-lang-core</artifactId>
147-
<version>0.5.1</version>
147+
<version>0.6.0</version>
148148
</dependency>
149149
```
150150

@@ -157,6 +157,34 @@ Maven:
157157

158158
![Architecture diagram of SKaiNET compiler](docs//SKaiNET-compiler.svg)
159159

160+
## 0.6.0 highlights (with tiny snippets)
161+
162+
- StableHLO and CUDA support via IREE
163+
164+
```kotlin
165+
// Compile model to StableHLO and run on CUDA
166+
val ir = Compile.toStableHlo(model)
167+
println(ir.pretty())
168+
```
169+
170+
- Arduino C99 code generation
171+
172+
```kotlin
173+
// Export model to an Arduino library
174+
val facade = CCodegenFacade()
175+
facade.exportToArduinoLibrary(
176+
model = model,
177+
forwardPass = { ctx -> model.forward(input, ctx) },
178+
outputPath = "build/arduino",
179+
libraryName = "MyModel"
180+
)
181+
```
182+
183+
- KSP-based TracingOps generation for recording pipelines.
184+
- Improved HLO implementation and CUDA backend strategy.
185+
186+
See CHANGELOG.md for the full list.
187+
160188
## 0.5.0 highlights (with tiny snippets)
161189

162190
- Kolmogorov–Arnold Networks (KAN/AKN) preview in the NN DSL
@@ -213,8 +241,6 @@ println("Tensors: ${gguf.tensors.size}")
213241

214242
- SIMD/Vector API acceleration on JVM; MatMul, tril, pooling ops; forward hooks and simple tape recording; unified tensor creation contexts; nested data blocks returning tensors.
215243

216-
See CHANGELOG.md for the full list.
217-
218244
## Experimental: Kolmogorov–Arnold Networks (KAN)
219245

220246
SKaiNET includes an initial KAN layer implementation that you can wire into the NN DSL. A KAN layer expands each input feature by a learnable grid of basis coefficients and then mixes them with a linear projection, with optional bias and residual connection.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
GROUP=sk.ainet.core
2-
VERSION_NAME=0.5.1
2+
VERSION_NAME=0.6.3
33

44
POM_DESCRIPTION=SKaiNET
55

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
POM_ARTIFACT_ID=skainet-compile-dag
1+
POM_ARTIFACT_ID=skainet-compile-hlo
22
POM_NAME=skainet neural network compile DAG
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
POM_ARTIFACT_ID=skainet-compile-dag
1+
POM_ARTIFACT_ID=skainet-compile-onnx
22
POM_NAME=skainet neural network compile DAG

skainet-lang/skainet-lang-core/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ kotlin {
5454
}
5555
}
5656

57-
// Ensure KSP metadata task runs before any Kotlin compilation and other KSP tasks
57+
// Ensure KSP metadata task runs before any Kotlin compilation, other KSP tasks, and sourcesJar
5858
tasks.configureEach {
5959
if (name != "kspCommonMainKotlinMetadata" &&
60-
(name.startsWith("compileKotlin") || name.startsWith("ksp"))) {
60+
(name.startsWith("compileKotlin") || name.startsWith("ksp") || name.contains("ourcesJar"))) {
6161
dependsOn("kspCommonMainKotlinMetadata")
6262
}
6363
}

0 commit comments

Comments
 (0)