Skip to content

Commit 63a7dac

Browse files
committed
Added 3 NPU Models...
1 parent a4d5c11 commit 63a7dac

7 files changed

Lines changed: 101 additions & 8 deletions

File tree

examples/flutter/RunAnywhereAI/pubspec.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ dependencies:
1919
path: ../../../sdk/runanywhere-flutter/packages/runanywhere_llamacpp
2020

2121
# RunAnywhere SDK - Genie NPU Backend (Android/Snapdragon only)
22-
runanywhere_genie: ^0.1.2
22+
runanywhere_genie:
23+
path: ../../../sdk/runanywhere-flutter/packages/runanywhere_genie
2324
provider: ^6.1.0
2425
flutter_markdown: ^0.6.18
2526
record: ^6.1.0
@@ -60,6 +61,8 @@ dev_dependencies:
6061
dependency_overrides:
6162
runanywhere:
6263
path: ../../../sdk/runanywhere-flutter/packages/runanywhere
64+
runanywhere_genie:
65+
path: ../../../sdk/runanywhere-flutter/packages/runanywhere_genie
6366

6467
flutter:
6568
uses-material-design: true

sdk/runanywhere-flutter/packages/runanywhere/lib/core/types/model_types.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ enum InferenceFramework {
111111
'FoundationModels', 'Foundation Models', 'foundation_models'),
112112
systemTTS('SystemTTS', 'System TTS', 'system_tts'),
113113
fluidAudio('FluidAudio', 'FluidAudio', 'fluid_audio'),
114-
genie('Genie', 'Genie NPU', 'genie'),
114+
genie('Genie', 'Qualcomm Genie', 'genie'),
115115

116116
// Special cases
117117
builtIn('BuiltIn', 'Built-in', 'built_in'),
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/// Qualcomm Genie NPU backend for RunAnywhere Flutter SDK.
2+
///
3+
/// This package provides LLM (Language Model) capabilities via Qualcomm Genie NPU.
4+
/// It is a **thin wrapper** that registers the C++ backend with the service registry.
5+
///
6+
/// ## Architecture (matches Swift/Kotlin exactly)
7+
///
8+
/// The C++ backend (RABackendGenie) handles all business logic:
9+
/// - Service provider registration
10+
/// - Model loading and inference on Snapdragon NPU
11+
/// - Streaming generation
12+
///
13+
/// This Dart module just:
14+
/// 1. Calls `rac_backend_genie_register()` to register the backend
15+
/// 2. The core SDK handles all LLM operations via `rac_llm_component_*`
16+
///
17+
/// ## Quick Start
18+
///
19+
/// ```dart
20+
/// import 'package:runanywhere/runanywhere.dart';
21+
/// import 'package:runanywhere_genie/runanywhere_genie.dart';
22+
///
23+
/// // Initialize SDK
24+
/// await RunAnywhere.initialize();
25+
///
26+
/// // Register Genie module (Android/Snapdragon only)
27+
/// await Genie.register();
28+
/// ```
29+
///
30+
/// ## Capabilities
31+
///
32+
/// - **LLM (Language Model)**: Text generation on Snapdragon NPU
33+
/// - **Streaming**: Token-by-token streaming generation
34+
///
35+
/// ## Platform Support
36+
///
37+
/// - **Android**: Snapdragon devices with NPU support
38+
/// - **iOS**: Not supported (Genie is Android/Snapdragon only)
39+
library runanywhere_genie;
40+
41+
export 'genie.dart';
42+
export 'genie_error.dart';
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: runanywhere_genie
2+
description: Qualcomm Genie NPU backend for RunAnywhere Flutter SDK. On-device LLM inference on Snapdragon NPU.
3+
version: 0.16.0
4+
homepage: https://runanywhere.ai
5+
repository: https://github.com/RunanywhereAI/runanywhere-sdks
6+
issue_tracker: https://github.com/RunanywhereAI/runanywhere-sdks/issues
7+
topics:
8+
- ai
9+
- llm
10+
- npu
11+
- qualcomm
12+
- on-device
13+
14+
environment:
15+
sdk: '>=3.0.0 <4.0.0'
16+
flutter: '>=3.10.0'
17+
18+
dependencies:
19+
flutter:
20+
sdk: flutter
21+
# Core SDK dependency (provides RACommons)
22+
runanywhere: ^0.16.0
23+
ffi: ^2.1.0
24+
25+
dev_dependencies:
26+
flutter_test:
27+
sdk: flutter
28+
flutter_lints: ^3.0.0
29+
30+
flutter:
31+
uses-material-design: true
32+
33+
# Native plugin configuration
34+
# RABackendGenie binaries are bundled in android/ directory (Android/Snapdragon only)
35+
plugin:
36+
platforms:
37+
android:
38+
package: ai.runanywhere.sdk.genie
39+
pluginClass: GeniePlugin
40+
ios:
41+
pluginClass: GeniePlugin

sdk/runanywhere-kotlin/src/androidMain/kotlin/com/runanywhere/sdk/foundation/device/DeviceInfoService.kt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,17 @@ actual class DeviceInfoService {
3535

3636
actual fun getChipName(): String? =
3737
try {
38-
// Get primary ABI (architecture)
39-
val abis = Build.SUPPORTED_ABIS
40-
if (abis.isNotEmpty()) {
41-
abis[0]
38+
// Try Build.SOC_MODEL first (API 31+) — returns actual SoC like "SM8750"
39+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
40+
val socModel = Build.SOC_MODEL
41+
if (!socModel.isNullOrEmpty() && socModel != "unknown") {
42+
return socModel
43+
}
44+
}
45+
// Fallback to Build.HARDWARE
46+
val hardware = Build.HARDWARE
47+
if (!hardware.isNullOrEmpty() && hardware != "unknown") {
48+
hardware
4249
} else {
4350
null
4451
}

sdk/runanywhere-kotlin/src/commonMain/kotlin/com/runanywhere/sdk/foundation/device/DeviceInfoService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ expect class DeviceInfoService() {
2323
fun getDeviceModel(): String
2424

2525
/**
26-
* Get chip/CPU name (e.g., "ARM64", "x86_64")
26+
* Get SoC model name for NPU chip detection (e.g., "SM8750", "kalama")
2727
* Returns null if unable to determine
2828
*/
2929
fun getChipName(): String?

sdk/runanywhere-react-native/packages/core/src/types/enums.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export const LLMFrameworkDisplayNames: Record<LLMFramework, string> = {
6565
[LLMFramework.OpenAIWhisper]: 'OpenAI Whisper',
6666
[LLMFramework.SystemTTS]: 'System TTS',
6767
[LLMFramework.PiperTTS]: 'Piper TTS',
68-
[LLMFramework.Genie]: 'Genie NPU',
68+
[LLMFramework.Genie]: 'Qualcomm Genie',
6969
};
7070

7171
/**

0 commit comments

Comments
 (0)