Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public final class sk/ainet/context/DirectCpuExecutionContext : sk/ainet/context
public fun getPhase ()Lsk/ainet/context/Phase;
public fun getScratch ()Lsk/ainet/lang/tensor/scratch/ScratchPool;
public fun getTensorDataFactory ()Lsk/ainet/lang/tensor/data/TensorDataFactory;
public fun isRecording ()Z
public fun ones (Lsk/ainet/lang/tensor/Shape;Lkotlin/reflect/KClass;)Lsk/ainet/lang/tensor/Tensor;
public fun placeholder (Lsk/ainet/lang/tensor/Shape;Lkotlin/reflect/KClass;)Lsk/ainet/lang/tensor/Tensor;
public fun registerObserver (Lsk/ainet/context/ExecutionObserver;)V
Expand Down Expand Up @@ -54,6 +55,7 @@ public final class sk/ainet/exec/kernel/PanamaVectorKernelProvider : sk/ainet/ba
public fun matmulFp32 ()Lsk/ainet/backend/api/kernel/Fp32MatmulKernel;
public fun matmulQ4K ()Lsk/ainet/backend/api/kernel/Q4KMatmulKernel;
public fun matmulQ4_0 ()Lsk/ainet/backend/api/kernel/Q4_0MatmulKernel;
public fun matmulQ5K ()Lsk/ainet/backend/api/kernel/Q5KMatmulKernel;
public fun matmulQ5_0 ()Lsk/ainet/backend/api/kernel/Q5_0MatmulKernel;
public fun matmulQ5_1 ()Lsk/ainet/backend/api/kernel/Q5_1MatmulKernel;
public fun matmulQ6K ()Lsk/ainet/backend/api/kernel/Q6KMatmulKernel;
Expand All @@ -70,6 +72,7 @@ public final class sk/ainet/exec/kernel/PanamaVectorKernelProviderFactory : sk/a
public fun matmulFp32 ()Lsk/ainet/backend/api/kernel/Fp32MatmulKernel;
public fun matmulQ4K ()Lsk/ainet/backend/api/kernel/Q4KMatmulKernel;
public fun matmulQ4_0 ()Lsk/ainet/backend/api/kernel/Q4_0MatmulKernel;
public fun matmulQ5K ()Lsk/ainet/backend/api/kernel/Q5KMatmulKernel;
public fun matmulQ5_0 ()Lsk/ainet/backend/api/kernel/Q5_0MatmulKernel;
public fun matmulQ5_1 ()Lsk/ainet/backend/api/kernel/Q5_1MatmulKernel;
public fun matmulQ6K ()Lsk/ainet/backend/api/kernel/Q6KMatmulKernel;
Expand Down Expand Up @@ -102,6 +105,11 @@ public final class sk/ainet/exec/kernel/PanamaVectorQ5_1MatmulKernel : sk/ainet/
public fun matmul ([FI[BIII[FI)V
}

public final class sk/ainet/exec/kernel/PanamaVectorQ5_KMatmulKernel : sk/ainet/backend/api/kernel/Q5KMatmulKernel {
public static final field INSTANCE Lsk/ainet/exec/kernel/PanamaVectorQ5_KMatmulKernel;
public fun matmul ([FI[BIII[FI)V
}

public final class sk/ainet/exec/kernel/PanamaVectorQ6_KMatmulKernel : sk/ainet/backend/api/kernel/Q6KMatmulKernel {
public static final field INSTANCE Lsk/ainet/exec/kernel/PanamaVectorQ6_KMatmulKernel;
public fun matmul ([FI[BIII[FI)V
Expand All @@ -126,6 +134,7 @@ public final class sk/ainet/exec/kernel/ScalarKernelProvider : sk/ainet/backend/
public fun matmulFp32 ()Lsk/ainet/backend/api/kernel/Fp32MatmulKernel;
public fun matmulQ4K ()Lsk/ainet/backend/api/kernel/Q4KMatmulKernel;
public fun matmulQ4_0 ()Lsk/ainet/backend/api/kernel/Q4_0MatmulKernel;
public fun matmulQ5K ()Lsk/ainet/backend/api/kernel/Q5KMatmulKernel;
public fun matmulQ5_0 ()Lsk/ainet/backend/api/kernel/Q5_0MatmulKernel;
public fun matmulQ5_1 ()Lsk/ainet/backend/api/kernel/Q5_1MatmulKernel;
public fun matmulQ6K ()Lsk/ainet/backend/api/kernel/Q6KMatmulKernel;
Expand All @@ -142,6 +151,7 @@ public final class sk/ainet/exec/kernel/ScalarKernelProviderFactory : sk/ainet/b
public fun matmulFp32 ()Lsk/ainet/backend/api/kernel/Fp32MatmulKernel;
public fun matmulQ4K ()Lsk/ainet/backend/api/kernel/Q4KMatmulKernel;
public fun matmulQ4_0 ()Lsk/ainet/backend/api/kernel/Q4_0MatmulKernel;
public fun matmulQ5K ()Lsk/ainet/backend/api/kernel/Q5KMatmulKernel;
public fun matmulQ5_0 ()Lsk/ainet/backend/api/kernel/Q5_0MatmulKernel;
public fun matmulQ5_1 ()Lsk/ainet/backend/api/kernel/Q5_1MatmulKernel;
public fun matmulQ6K ()Lsk/ainet/backend/api/kernel/Q6KMatmulKernel;
Expand Down Expand Up @@ -174,6 +184,11 @@ public final class sk/ainet/exec/kernel/ScalarQ5_1MatmulKernel : sk/ainet/backen
public fun matmul ([FI[BIII[FI)V
}

public final class sk/ainet/exec/kernel/ScalarQ5_KMatmulKernel : sk/ainet/backend/api/kernel/Q5KMatmulKernel {
public static final field INSTANCE Lsk/ainet/exec/kernel/ScalarQ5_KMatmulKernel;
public fun matmul ([FI[BIII[FI)V
}

public final class sk/ainet/exec/kernel/ScalarQ6_KMatmulKernel : sk/ainet/backend/api/kernel/Q6KMatmulKernel {
public static final field INSTANCE Lsk/ainet/exec/kernel/ScalarQ6_KMatmulKernel;
public fun matmul ([FI[BIII[FI)V
Expand Down Expand Up @@ -287,6 +302,21 @@ public final class sk/ainet/exec/tensor/ops/JvmTurboQuantKernels {
public final fun walshHadamardButterfly ([FII)V
}

public final class sk/ainet/exec/tensor/ops/KernelProfile {
public static final field INSTANCE Lsk/ainet/exec/tensor/ops/KernelProfile;
public final fun getFp32Calls ()J
public final fun getFp32Nanos ()J
public final fun getGenericCalls ()J
public final fun getGenericNanos ()J
public final fun getQuantCalls ()J
public final fun getQuantNanos ()J
public final fun report ()Ljava/lang/String;
public final fun reset ()V
public final fun timeFp32 (Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
public final fun timeGeneric (Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
public final fun timeQuant (Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
}

public final class sk/ainet/java/SKaiNET {
public static final field INSTANCE Lsk/ainet/java/SKaiNET;
public static final fun context ()Lsk/ainet/context/ExecutionContext;
Expand Down
17 changes: 17 additions & 0 deletions skainet-backends/skainet-backend-native-cpu/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,23 @@ tasks.matching { it.name.startsWith("link") && it.name.endsWith("LinuxX64") }.co
dependsOn(buildNativeKernels)
}

// The linuxX64/linuxArm64 K/N *test* binaries link the CMake static archive and
// execute a Linux ELF. On a non-Linux host the CMake build emits host-format
// objects (Mach-O on macOS), which ld.lld cannot cross-link into a Linux binary,
// and a Linux .kexe cannot be executed anyway. Disable the K/N test link + run
// on non-Linux hosts so `build`/`allTests` stay green locally; klib compilation
// (compileKotlinLinux*) and publishing are unaffected, and the native NEON parity
// suite still runs on Linux CI / qemu-aarch64 / the SL2610 board. Mirrors the
// existing `-PcrossArm64` opt-in gating for the aarch64 cross artifacts.
val isLinuxHost: Boolean = System.getProperty("os.name").lowercase().contains("linux")
if (!isLinuxHost) {
tasks.matching {
(it.name.startsWith("link") && it.name.contains("Test") &&
(it.name.endsWith("LinuxX64") || it.name.endsWith("LinuxArm64"))) ||
it.name == "linuxX64Test" || it.name == "linuxArm64Test"
}.configureEach { enabled = false }
}

val packageNativeKernels by tasks.registering(Copy::class) {
group = "build"
description = "Stage the built native kernels library into JVM resources."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,19 @@ public final class sk/ainet/lang/graph/DefaultGradientTape : sk/ainet/lang/graph
public fun conv1dBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun conv2dBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun conv3dBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun convTranspose1dBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun copy ()Lsk/ainet/tape/ExecutionTape;
public fun cosBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun divScalarBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun divideBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun eluBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun expBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun expm1Backward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun flattenBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun gatherBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun geluBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun getComputeGradients ()Z
public fun indexSelectBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun leakyReluBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun log10Backward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun log2Backward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
Expand All @@ -116,6 +120,7 @@ public final class sk/ainet/lang/graph/DefaultGradientTape : sk/ainet/lang/graph
public fun scaledDotProductAttentionBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun sigmoidBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun siluBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun sinBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun softmaxBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun splitBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun sqrtBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
Expand All @@ -127,6 +132,8 @@ public final class sk/ainet/lang/graph/DefaultGradientTape : sk/ainet/lang/graph
public final fun suppressRecording ()V
public fun tanhBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun transposeBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun trilBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun unfoldBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun unsqueezeBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun upsample2dBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
public fun varianceBackward (Lsk/ainet/lang/tensor/Tensor;Lsk/ainet/lang/tensor/Tensor;Ljava/util/List;Ljava/util/Map;)Ljava/util/List;
Expand Down Expand Up @@ -280,6 +287,24 @@ public final class sk/ainet/lang/graph/GraphNode {
public abstract interface class sk/ainet/lang/graph/Layout {
}

public final class sk/ainet/lang/graph/OutputDesignatedGraph : sk/ainet/lang/graph/ComputeGraph {
public fun <init> (Lsk/ainet/lang/graph/ComputeGraph;Ljava/util/Set;)V
public fun addEdge (Lsk/ainet/lang/graph/GraphEdge;)Lsk/ainet/lang/graph/GraphEdge;
public fun addNode (Lsk/ainet/lang/graph/GraphNode;)Lsk/ainet/lang/graph/GraphNode;
public fun clear ()V
public fun copy ()Lsk/ainet/lang/graph/ComputeGraph;
public fun getEdges ()Ljava/util/List;
public fun getInputNodes ()Ljava/util/List;
public fun getInputNodes (Lsk/ainet/lang/graph/GraphNode;)Ljava/util/List;
public fun getNodes ()Ljava/util/List;
public fun getOutputNodes ()Ljava/util/List;
public fun getOutputNodes (Lsk/ainet/lang/graph/GraphNode;)Ljava/util/List;
public fun getTopologicalOrder ()Ljava/util/List;
public fun removeEdge (Lsk/ainet/lang/graph/GraphEdge;)Z
public fun removeNode (Lsk/ainet/lang/graph/GraphNode;)Z
public fun validate ()Lsk/ainet/lang/tensor/ops/ValidationResult;
}

public final class sk/ainet/lang/graph/ResolvedComputeGraph {
public fun <init> (Lsk/ainet/lang/graph/ComputeGraph;)V
public final fun backendAssignment (Ljava/lang/String;)Ljava/lang/String;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ public final class sk/ainet/compile/opt/GraphOptimizationResult {
public fun toString ()Ljava/lang/String;
}

public final class sk/ainet/compile/opt/GraphPruningKt {
public static final fun prunedToOutputs (Lsk/ainet/lang/graph/ComputeGraph;Ljava/util/Set;)Lsk/ainet/lang/graph/ComputeGraph;
}

public final class sk/ainet/compile/opt/passes/ConstantFoldingPass : sk/ainet/compile/opt/GraphOptimizationPass {
public fun <init> ()V
public fun apply (Lsk/ainet/lang/graph/ComputeGraph;)Lsk/ainet/compile/opt/GraphOptimizationResult;
Expand Down
Loading
Loading