Skip to content

Commit f87329c

Browse files
Merge pull request #163 from sk-ai-net/feature/2-mnist-exec
Add initial version of CPU compute backend
2 parents c288820 + 920b71f commit f87329c

92 files changed

Lines changed: 8592 additions & 2082 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

settings.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,7 @@ include("skainet-lang:skainet-lang-core")
1919
include("skainet-lang:skainet-lang-models")
2020
include("skainet-lang:skainet-lang-ksp-annotations")
2121
include("skainet-lang:skainet-lang-ksp-processor")
22-
include("skainet-lang:skainet-lang-export-ops")
22+
include("skainet-compile:skainet-compile-core")
23+
//include("skainet-compile:skainet-compile-dag")
24+
//include("skainet-backends:skainet-backends-core")
25+
include("skainet-backends:skainet-backend-cpu")
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
2+
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
3+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4+
5+
plugins {
6+
alias(libs.plugins.kotlinMultiplatform)
7+
alias(libs.plugins.androidLibrary)
8+
alias(libs.plugins.vanniktech.mavenPublish)
9+
alias(libs.plugins.kover)
10+
alias(libs.plugins.binary.compatibility.validator)
11+
}
12+
13+
kotlin {
14+
explicitApi()
15+
16+
androidTarget {
17+
@OptIn(ExperimentalKotlinGradlePluginApi::class)
18+
compilerOptions {
19+
jvmTarget.set(JvmTarget.JVM_11)
20+
}
21+
}
22+
23+
iosArm64()
24+
iosSimulatorArm64()
25+
macosArm64 ()
26+
linuxX64 ()
27+
linuxArm64 ()
28+
29+
jvm()
30+
31+
@OptIn(ExperimentalWasmDsl::class)
32+
wasmJs {
33+
browser()
34+
binaries.executable()
35+
}
36+
37+
sourceSets {
38+
commonMain.dependencies {
39+
implementation(project(":skainet-lang:skainet-lang-core"))
40+
implementation(project(":skainet-compile:skainet-compile-core"))
41+
}
42+
43+
commonTest.dependencies {
44+
implementation(libs.kotlin.test)
45+
}
46+
}
47+
}
48+
49+
android {
50+
namespace = "sk.ai.net.lang.api"
51+
compileSdk = libs.versions.android.compileSdk.get().toInt()
52+
53+
defaultConfig {
54+
minSdk = libs.versions.android.minSdk.get().toInt()
55+
}
56+
compileOptions {
57+
sourceCompatibility = JavaVersion.VERSION_11
58+
targetCompatibility = JavaVersion.VERSION_11
59+
}
60+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
POM_ARTIFACT_ID=skainet-backend-cpu
2+
POM_NAME=skainet neural network scripting API
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package sk.ainet.context
2+
3+
import sk.ainet.lang.tensor.data.TensorDataFactory
4+
import sk.ainet.lang.tensor.data.DenseTensorDataFactory
5+
import sk.ainet.lang.tensor.ops.TensorOps
6+
import sk.ainet.exec.tensor.ops.DefaultCpuOps
7+
8+
public class DirectCpuExecutionContext(
9+
override val executionStats: ExecutionStats = ExecutionStats(),
10+
) : ExecutionContext {
11+
private val _memoryInfo = MemoryInfo(
12+
totalMemory = 0,
13+
usedMemory = 0,
14+
freeMemory = 0,
15+
usagePercentage = 0.0
16+
)
17+
18+
override val tensorDataFactory: TensorDataFactory = DenseTensorDataFactory()
19+
override val memoryInfo: MemoryInfo
20+
get() = _memoryInfo
21+
22+
override val ops: TensorOps
23+
get() = DefaultCpuOps(tensorDataFactory)
24+
}

0 commit comments

Comments
 (0)