cactus-react-native 0.2.11 → 1.0.2
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.
- package/Cactus.podspec +34 -0
- package/LICENSE +38 -0
- package/README.md +550 -69
- package/android/CMakeLists.txt +40 -0
- package/android/build.gradle +68 -44
- package/android/gradle.properties +5 -5
- package/android/src/main/AndroidManifest.xml +1 -3
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/cactus/CactusPackage.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusCrypto.kt +38 -0
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusDeviceInfo.kt +24 -0
- package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusFileSystem.kt +227 -0
- package/android/src/main/jniLibs/arm64-v8a/{libcactus_v8.so → libcactus.a} +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_util.so +0 -0
- package/cpp/HybridCactus.cpp +135 -0
- package/cpp/HybridCactus.hpp +42 -0
- package/cpp/HybridCactusUtil.cpp +47 -0
- package/cpp/HybridCactusUtil.hpp +26 -0
- package/cpp/cactus_ffi.h +55 -0
- package/cpp/cactus_util.h +25 -0
- package/ios/HybridCactusCrypto.swift +37 -0
- package/ios/HybridCactusDeviceInfo.swift +32 -0
- package/ios/HybridCactusFileSystem.swift +234 -0
- package/ios/cactus.xcframework/{info.plist → Info.plist} +2 -37
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus.h +8 -229
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/cactus_ffi.h +28 -229
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +545 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ffi_utils.h +400 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +338 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel.h +275 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/kernel_utils.h +343 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus.h +11 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/cactus_ffi.h +55 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +545 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/ffi_utils.h +400 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +338 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel.h +275 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/kernel_utils.h +343 -0
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/{tvos-arm64_x86_64-simulator → ios-arm64-simulator}/cactus.framework/_CodeSignature/CodeResources +1 -1
- package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus_util.xcframework/Info.plist +39 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/cactus_util.h +25 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/ios_utils.h +10 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Headers/logging.h +25 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/Info.plist +0 -0
- package/ios/cactus_util.xcframework/ios-arm64/cactus_util.framework/cactus_util +0 -0
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/cactus_util.h +25 -0
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/ios_utils.h +10 -0
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/Headers/logging.h +25 -0
- package/ios/{cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework → cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework}/Info.plist +0 -0
- package/ios/{cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework → cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework}/_CodeSignature/CodeResources +36 -2
- package/ios/cactus_util.xcframework/ios-arm64-simulator/cactus_util.framework/cactus_util +0 -0
- package/lib/module/api/Database.js +60 -0
- package/lib/module/api/Database.js.map +1 -0
- package/lib/module/classes/CactusLM.js +151 -0
- package/lib/module/classes/CactusLM.js.map +1 -0
- package/lib/module/config/CactusConfig.js +6 -0
- package/lib/module/config/CactusConfig.js.map +1 -0
- package/lib/module/constants/packageVersion.js +4 -0
- package/lib/module/constants/packageVersion.js.map +1 -0
- package/lib/module/hooks/useCactusLM.js +238 -0
- package/lib/module/hooks/useCactusLM.js.map +1 -0
- package/lib/module/index.js +9 -409
- package/lib/module/index.js.map +1 -1
- package/lib/module/native/Cactus.js +50 -0
- package/lib/module/native/Cactus.js.map +1 -0
- package/lib/module/native/CactusCrypto.js +10 -0
- package/lib/module/native/CactusCrypto.js.map +1 -0
- package/lib/module/native/CactusDeviceInfo.js +13 -0
- package/lib/module/native/CactusDeviceInfo.js.map +1 -0
- package/lib/module/native/CactusFileSystem.js +35 -0
- package/lib/module/native/CactusFileSystem.js.map +1 -0
- package/lib/module/native/CactusUtil.js +23 -0
- package/lib/module/native/CactusUtil.js.map +1 -0
- package/lib/module/native/index.js +8 -0
- package/lib/module/native/index.js.map +1 -0
- package/lib/module/specs/Cactus.nitro.js +4 -0
- package/lib/module/specs/Cactus.nitro.js.map +1 -0
- package/lib/module/specs/CactusCrypto.nitro.js +4 -0
- package/lib/module/specs/CactusCrypto.nitro.js.map +1 -0
- package/lib/module/specs/CactusDeviceInfo.nitro.js +4 -0
- package/lib/module/specs/CactusDeviceInfo.nitro.js.map +1 -0
- package/lib/module/specs/CactusFileSystem.nitro.js +4 -0
- package/lib/module/specs/CactusFileSystem.nitro.js.map +1 -0
- package/lib/module/specs/CactusUtil.nitro.js +4 -0
- package/lib/module/specs/CactusUtil.nitro.js.map +1 -0
- package/lib/module/telemetry/Telemetry.js +100 -0
- package/lib/module/telemetry/Telemetry.js.map +1 -0
- package/lib/module/types/CactusLM.js +2 -0
- package/lib/module/types/CactusLM.js.map +1 -0
- package/lib/module/types/CactusModel.js +2 -0
- package/lib/module/types/CactusModel.js.map +1 -0
- package/lib/module/utils/error.js +4 -0
- package/lib/module/utils/error.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/api/Database.d.ts +11 -0
- package/lib/typescript/src/api/Database.d.ts.map +1 -0
- package/lib/typescript/src/classes/CactusLM.d.ts +26 -0
- package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -0
- package/lib/typescript/src/config/CactusConfig.d.ts +5 -0
- package/lib/typescript/src/config/CactusConfig.d.ts.map +1 -0
- package/lib/typescript/src/constants/packageVersion.d.ts +2 -0
- package/lib/typescript/src/constants/packageVersion.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useCactusLM.d.ts +20 -0
- package/lib/typescript/src/hooks/useCactusLM.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +6 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/native/Cactus.d.ts +11 -0
- package/lib/typescript/src/native/Cactus.d.ts.map +1 -0
- package/lib/typescript/src/native/CactusCrypto.d.ts +5 -0
- package/lib/typescript/src/native/CactusCrypto.d.ts.map +1 -0
- package/lib/typescript/src/native/CactusDeviceInfo.d.ts +7 -0
- package/lib/typescript/src/native/CactusDeviceInfo.d.ts.map +1 -0
- package/lib/typescript/src/native/CactusFileSystem.d.ts +13 -0
- package/lib/typescript/src/native/CactusFileSystem.d.ts.map +1 -0
- package/lib/typescript/src/native/CactusUtil.d.ts +6 -0
- package/lib/typescript/src/native/CactusUtil.d.ts.map +1 -0
- package/lib/typescript/src/native/index.d.ts +6 -0
- package/lib/typescript/src/native/index.d.ts.map +1 -0
- package/lib/typescript/src/specs/Cactus.nitro.d.ts +13 -0
- package/lib/typescript/src/specs/Cactus.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/CactusCrypto.nitro.d.ts +8 -0
- package/lib/typescript/src/specs/CactusCrypto.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/CactusDeviceInfo.nitro.d.ts +16 -0
- package/lib/typescript/src/specs/CactusDeviceInfo.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/CactusFileSystem.nitro.d.ts +16 -0
- package/lib/typescript/src/specs/CactusFileSystem.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/CactusUtil.nitro.d.ts +10 -0
- package/lib/typescript/src/specs/CactusUtil.nitro.d.ts.map +1 -0
- package/lib/typescript/src/telemetry/Telemetry.d.ts +30 -0
- package/lib/typescript/src/telemetry/Telemetry.d.ts.map +1 -0
- package/lib/typescript/src/types/CactusLM.d.ts +67 -0
- package/lib/typescript/src/types/CactusLM.d.ts.map +1 -0
- package/lib/typescript/src/types/CactusModel.d.ts +12 -0
- package/lib/typescript/src/types/CactusModel.d.ts.map +1 -0
- package/lib/typescript/src/utils/error.d.ts +2 -0
- package/lib/typescript/src/utils/error.d.ts.map +1 -0
- package/nitro.json +31 -0
- package/nitrogen/generated/android/c++/JDeviceInfo.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_void_double.hpp +74 -0
- package/nitrogen/generated/android/c++/JHybridCactusCryptoSpec.cpp +65 -0
- package/nitrogen/generated/android/c++/JHybridCactusCryptoSpec.hpp +65 -0
- package/nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.cpp +85 -0
- package/nitrogen/generated/android/c++/JHybridCactusDeviceInfoSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.cpp +192 -0
- package/nitrogen/generated/android/c++/JHybridCactusFileSystemSpec.hpp +73 -0
- package/nitrogen/generated/android/cactus+autolinking.cmake +87 -0
- package/nitrogen/generated/android/cactus+autolinking.gradle +27 -0
- package/nitrogen/generated/android/cactusOnLoad.cpp +86 -0
- package/nitrogen/generated/android/cactusOnLoad.hpp +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/DeviceInfo.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/Func_void_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusCryptoSpec.kt +58 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusDeviceInfoSpec.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/HybridCactusFileSystemSpec.kt +95 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/cactus/cactusOnLoad.kt +35 -0
- package/nitrogen/generated/ios/Cactus+autolinking.rb +60 -0
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.cpp +122 -0
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Bridge.hpp +373 -0
- package/nitrogen/generated/ios/Cactus-Swift-Cxx-Umbrella.hpp +60 -0
- package/nitrogen/generated/ios/CactusAutolinking.mm +69 -0
- package/nitrogen/generated/ios/CactusAutolinking.swift +55 -0
- package/nitrogen/generated/ios/c++/HybridCactusCryptoSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridCactusCryptoSpecSwift.hpp +77 -0
- package/nitrogen/generated/ios/c++/HybridCactusDeviceInfoSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridCactusDeviceInfoSpecSwift.hpp +88 -0
- package/nitrogen/generated/ios/c++/HybridCactusFileSystemSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridCactusFileSystemSpecSwift.hpp +143 -0
- package/nitrogen/generated/ios/swift/DeviceInfo.swift +98 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_DeviceInfo.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_std__string_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridCactusCryptoSpec.swift +57 -0
- package/nitrogen/generated/ios/swift/HybridCactusCryptoSpec_cxx.swift +139 -0
- package/nitrogen/generated/ios/swift/HybridCactusDeviceInfoSpec.swift +58 -0
- package/nitrogen/generated/ios/swift/HybridCactusDeviceInfoSpec_cxx.swift +164 -0
- package/nitrogen/generated/ios/swift/HybridCactusFileSystemSpec.swift +65 -0
- package/nitrogen/generated/ios/swift/HybridCactusFileSystemSpec_cxx.swift +303 -0
- package/nitrogen/generated/shared/c++/DeviceInfo.hpp +92 -0
- package/nitrogen/generated/shared/c++/HybridCactusCryptoSpec.cpp +21 -0
- package/nitrogen/generated/shared/c++/HybridCactusCryptoSpec.hpp +63 -0
- package/nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.cpp +22 -0
- package/nitrogen/generated/shared/c++/HybridCactusDeviceInfoSpec.hpp +67 -0
- package/nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.cpp +29 -0
- package/nitrogen/generated/shared/c++/HybridCactusFileSystemSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridCactusSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridCactusSpec.hpp +71 -0
- package/nitrogen/generated/shared/c++/HybridCactusUtilSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridCactusUtilSpec.hpp +66 -0
- package/package.json +84 -143
- package/src/api/Database.ts +83 -0
- package/src/classes/CactusLM.ts +205 -0
- package/src/config/CactusConfig.ts +4 -0
- package/src/constants/packageVersion.ts +1 -0
- package/src/hooks/useCactusLM.ts +285 -0
- package/src/index.tsx +23 -0
- package/src/native/Cactus.ts +83 -0
- package/src/native/CactusCrypto.ts +11 -0
- package/src/native/CactusDeviceInfo.ts +18 -0
- package/src/native/CactusFileSystem.ts +47 -0
- package/src/native/CactusUtil.ts +27 -0
- package/src/native/index.ts +5 -0
- package/src/specs/Cactus.nitro.ts +20 -0
- package/src/specs/CactusCrypto.nitro.ts +6 -0
- package/src/specs/CactusDeviceInfo.nitro.ts +15 -0
- package/src/specs/CactusFileSystem.nitro.ts +21 -0
- package/src/specs/CactusUtil.nitro.ts +8 -0
- package/src/telemetry/Telemetry.ts +159 -0
- package/src/types/CactusLM.ts +73 -0
- package/src/types/CactusModel.ts +14 -0
- package/src/utils/error.ts +2 -0
- package/LICENSE.txt +0 -20
- package/android/src/main/CMakeLists.txt +0 -140
- package/android/src/main/java/com/cactus/Cactus.java +0 -1190
- package/android/src/main/java/com/cactus/CactusPackage.java +0 -48
- package/android/src/main/java/com/cactus/LlamaContext.java +0 -748
- package/android/src/main/jni-utils.h +0 -100
- package/android/src/main/jni.cpp +0 -1605
- package/android/src/main/jniLibs/arm64-v8a/libcactus.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_dotprod_i8mm.so +0 -0
- package/android/src/main/jniLibs/arm64-v8a/libcactus_v8_2_i8mm.so +0 -0
- package/android/src/newarch/java/com/cactus/CactusModule.java +0 -204
- package/android/src/oldarch/java/com/cactus/CactusModule.java +0 -205
- package/cactus-react-native.podspec +0 -42
- package/ios/CMakeLists.txt +0 -131
- package/ios/Cactus.h +0 -6
- package/ios/Cactus.mm +0 -681
- package/ios/CactusContext.h +0 -81
- package/ios/CactusContext.mm +0 -1032
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/chat.h +0 -145
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/common.h +0 -674
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-alloc.h +0 -76
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-backend-impl.h +0 -255
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-backend.h +0 -354
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-common.h +0 -1857
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpp.h +0 -39
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-cpu.h +0 -143
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-impl.h +0 -601
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-metal-impl.h +0 -622
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-metal.h +0 -66
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-opt.h +0 -237
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-quants.h +0 -100
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml-threading.h +0 -14
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/ggml.h +0 -2202
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/gguf.h +0 -202
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/json-schema-to-grammar.h +0 -21
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/json.hpp +0 -24766
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-adapter.h +0 -76
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-arch.h +0 -437
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-batch.h +0 -89
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-chat.h +0 -58
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-context.h +0 -276
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-cparams.h +0 -39
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-cpp.h +0 -30
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-grammar.h +0 -173
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-graph.h +0 -640
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-hparams.h +0 -190
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-impl.h +0 -61
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-io.h +0 -35
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-kv-cache.h +0 -515
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-memory.h +0 -32
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-mmap.h +0 -68
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-model-loader.h +0 -169
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-model-saver.h +0 -37
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-model.h +0 -425
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-sampling.h +0 -32
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama-vocab.h +0 -131
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/llama.h +0 -1376
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/log.h +0 -103
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/minja/chat-template.hpp +0 -542
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/minja/minja.hpp +0 -2974
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/sampling.h +0 -107
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/unicode-data.h +0 -20
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/unicode.h +0 -66
- package/ios/cactus.xcframework/ios-arm64/cactus.framework/ggml-llama.metallib +0 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/cactus.h +0 -232
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/cactus_ffi.h +0 -256
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/chat.h +0 -145
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/common.h +0 -674
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-alloc.h +0 -76
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-backend-impl.h +0 -255
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-backend.h +0 -354
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-common.h +0 -1857
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpp.h +0 -39
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu.h +0 -143
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-impl.h +0 -601
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-metal-impl.h +0 -622
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-metal.h +0 -66
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-opt.h +0 -237
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-quants.h +0 -100
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml-threading.h +0 -14
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/ggml.h +0 -2202
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/gguf.h +0 -202
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/json-schema-to-grammar.h +0 -21
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/json.hpp +0 -24766
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-adapter.h +0 -76
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-arch.h +0 -437
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-batch.h +0 -89
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-chat.h +0 -58
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-context.h +0 -276
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-cparams.h +0 -39
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-cpp.h +0 -30
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-grammar.h +0 -173
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-graph.h +0 -640
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-hparams.h +0 -190
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-impl.h +0 -61
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-io.h +0 -35
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-kv-cache.h +0 -515
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-memory.h +0 -32
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-mmap.h +0 -68
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-loader.h +0 -169
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-saver.h +0 -37
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-model.h +0 -425
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-sampling.h +0 -32
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama-vocab.h +0 -131
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/llama.h +0 -1376
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/log.h +0 -103
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/minja/chat-template.hpp +0 -542
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/minja/minja.hpp +0 -2974
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/sampling.h +0 -107
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/unicode-data.h +0 -20
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/Headers/unicode.h +0 -66
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/ios-arm64_x86_64-simulator/cactus.framework/ggml-llama-sim.metallib +0 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/cactus.h +0 -232
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/cactus_ffi.h +0 -256
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/chat.h +0 -145
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/common.h +0 -674
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-alloc.h +0 -76
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-backend-impl.h +0 -255
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-backend.h +0 -354
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-common.h +0 -1857
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpp.h +0 -39
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-cpu.h +0 -143
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-impl.h +0 -601
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-metal-impl.h +0 -622
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-metal.h +0 -66
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-opt.h +0 -237
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-quants.h +0 -100
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml-threading.h +0 -14
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/ggml.h +0 -2202
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/gguf.h +0 -202
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/json-schema-to-grammar.h +0 -21
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/json.hpp +0 -24766
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-adapter.h +0 -76
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-arch.h +0 -437
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-batch.h +0 -89
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-chat.h +0 -58
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-context.h +0 -276
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-cparams.h +0 -39
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-cpp.h +0 -30
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-grammar.h +0 -173
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-graph.h +0 -640
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-hparams.h +0 -190
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-impl.h +0 -61
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-io.h +0 -35
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-kv-cache.h +0 -515
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-memory.h +0 -32
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-mmap.h +0 -68
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-model-loader.h +0 -169
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-model-saver.h +0 -37
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-model.h +0 -425
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-sampling.h +0 -32
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama-vocab.h +0 -131
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/llama.h +0 -1376
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/log.h +0 -103
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/minja/chat-template.hpp +0 -542
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/minja/minja.hpp +0 -2974
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/sampling.h +0 -107
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/unicode-data.h +0 -20
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Headers/unicode.h +0 -66
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/tvos-arm64/cactus.framework/ggml-llama.metallib +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/cactus.h +0 -232
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/cactus_ffi.h +0 -256
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/chat.h +0 -145
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/common.h +0 -674
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-alloc.h +0 -76
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-backend-impl.h +0 -255
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-backend.h +0 -354
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-common.h +0 -1857
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpp.h +0 -39
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-cpu.h +0 -143
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-impl.h +0 -601
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-metal-impl.h +0 -622
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-metal.h +0 -66
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-opt.h +0 -237
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-quants.h +0 -100
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml-threading.h +0 -14
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/ggml.h +0 -2202
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/gguf.h +0 -202
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/json-schema-to-grammar.h +0 -21
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/json.hpp +0 -24766
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-adapter.h +0 -76
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-arch.h +0 -437
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-batch.h +0 -89
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-chat.h +0 -58
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-context.h +0 -276
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-cparams.h +0 -39
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-cpp.h +0 -30
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-grammar.h +0 -173
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-graph.h +0 -640
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-hparams.h +0 -190
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-impl.h +0 -61
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-io.h +0 -35
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-kv-cache.h +0 -515
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-memory.h +0 -32
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-mmap.h +0 -68
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-loader.h +0 -169
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-model-saver.h +0 -37
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-model.h +0 -425
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-sampling.h +0 -32
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama-vocab.h +0 -131
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/llama.h +0 -1376
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/log.h +0 -103
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/minja/chat-template.hpp +0 -542
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/minja/minja.hpp +0 -2974
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/sampling.h +0 -107
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/unicode-data.h +0 -20
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Headers/unicode.h +0 -66
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/Info.plist +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/cactus +0 -0
- package/ios/cactus.xcframework/tvos-arm64_x86_64-simulator/cactus.framework/ggml-llama-sim.metallib +0 -0
- package/lib/commonjs/NativeCactus.js +0 -9
- package/lib/commonjs/NativeCactus.js.map +0 -1
- package/lib/commonjs/agent.js +0 -73
- package/lib/commonjs/agent.js.map +0 -1
- package/lib/commonjs/chat.js +0 -73
- package/lib/commonjs/chat.js.map +0 -1
- package/lib/commonjs/index.js +0 -523
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/lm.js +0 -272
- package/lib/commonjs/lm.js.map +0 -1
- package/lib/commonjs/package.json +0 -1
- package/lib/commonjs/projectId.js +0 -9
- package/lib/commonjs/projectId.js.map +0 -1
- package/lib/commonjs/remote.js +0 -100
- package/lib/commonjs/remote.js.map +0 -1
- package/lib/commonjs/telemetry.js +0 -102
- package/lib/commonjs/telemetry.js.map +0 -1
- package/lib/commonjs/tools.js +0 -72
- package/lib/commonjs/tools.js.map +0 -1
- package/lib/commonjs/tts.js +0 -141
- package/lib/commonjs/tts.js.map +0 -1
- package/lib/commonjs/vlm.js +0 -221
- package/lib/commonjs/vlm.js.map +0 -1
- package/lib/module/NativeCactus.js +0 -5
- package/lib/module/NativeCactus.js.map +0 -1
- package/lib/module/agent.js +0 -68
- package/lib/module/agent.js.map +0 -1
- package/lib/module/chat.js +0 -67
- package/lib/module/chat.js.map +0 -1
- package/lib/module/lm.js +0 -267
- package/lib/module/lm.js.map +0 -1
- package/lib/module/projectId.js +0 -5
- package/lib/module/projectId.js.map +0 -1
- package/lib/module/remote.js +0 -91
- package/lib/module/remote.js.map +0 -1
- package/lib/module/telemetry.js +0 -97
- package/lib/module/telemetry.js.map +0 -1
- package/lib/module/tools.js +0 -66
- package/lib/module/tools.js.map +0 -1
- package/lib/module/tts.js +0 -135
- package/lib/module/tts.js.map +0 -1
- package/lib/module/vlm.js +0 -216
- package/lib/module/vlm.js.map +0 -1
- package/lib/typescript/NativeCactus.d.ts +0 -252
- package/lib/typescript/NativeCactus.d.ts.map +0 -1
- package/lib/typescript/agent.d.ts +0 -31
- package/lib/typescript/agent.d.ts.map +0 -1
- package/lib/typescript/chat.d.ts +0 -23
- package/lib/typescript/chat.d.ts.map +0 -1
- package/lib/typescript/index.d.ts +0 -114
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/lm.d.ts +0 -36
- package/lib/typescript/lm.d.ts.map +0 -1
- package/lib/typescript/projectId.d.ts +0 -2
- package/lib/typescript/projectId.d.ts.map +0 -1
- package/lib/typescript/remote.d.ts +0 -8
- package/lib/typescript/remote.d.ts.map +0 -1
- package/lib/typescript/telemetry.d.ts +0 -25
- package/lib/typescript/telemetry.d.ts.map +0 -1
- package/lib/typescript/tools.d.ts +0 -36
- package/lib/typescript/tools.d.ts.map +0 -1
- package/lib/typescript/tts.d.ts +0 -54
- package/lib/typescript/tts.d.ts.map +0 -1
- package/lib/typescript/vlm.d.ts +0 -33
- package/lib/typescript/vlm.d.ts.map +0 -1
- package/scripts/postInstall.js +0 -33
- package/src/NativeCactus.ts +0 -317
- package/src/agent.ts +0 -112
- package/src/chat.ts +0 -91
- package/src/index.ts +0 -663
- package/src/lm.ts +0 -324
- package/src/projectId.ts +0 -1
- package/src/remote.ts +0 -113
- package/src/telemetry.ts +0 -137
- package/src/tools.ts +0 -94
- package/src/tts.ts +0 -236
- package/src/vlm.ts +0 -276
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
#ifndef GRAPH_H
|
|
2
|
+
#define GRAPH_H
|
|
3
|
+
|
|
4
|
+
#include <vector>
|
|
5
|
+
#include <memory>
|
|
6
|
+
#include <unordered_map>
|
|
7
|
+
#include <functional>
|
|
8
|
+
#include <cstring>
|
|
9
|
+
#include <stdexcept>
|
|
10
|
+
#include <string>
|
|
11
|
+
|
|
12
|
+
namespace GraphFile {
|
|
13
|
+
class MappedFile;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
enum class Precision {
|
|
17
|
+
INT8,
|
|
18
|
+
FP16,
|
|
19
|
+
FP32
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
enum class ComputeBackend {
|
|
23
|
+
CPU,
|
|
24
|
+
NPU
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
enum class OpType {
|
|
28
|
+
INPUT, PRECISION_CAST,
|
|
29
|
+
ADD, ADD_CLIPPED, SUBTRACT, MULTIPLY, DIVIDE,
|
|
30
|
+
MATMUL, TRANSPOSE, RESHAPE, SLICE, GATHER, EMBEDDING,
|
|
31
|
+
BILINEAR_INTERPOLATION,
|
|
32
|
+
SUM, MEAN, VARIANCE, MIN, MAX,
|
|
33
|
+
RMS_NORM, ROPE, SOFTMAX, ATTENTION, CONV1D_CAUSAL, CONV1D_K3,
|
|
34
|
+
SCALAR_ADD, SCALAR_SUBTRACT, SCALAR_MULTIPLY, SCALAR_DIVIDE, SCALAR_EXP, SCALAR_SQRT, SCALAR_COS, SCALAR_SIN,
|
|
35
|
+
SILU, GELU,
|
|
36
|
+
SAMPLE, CONCAT,
|
|
37
|
+
SCATTER_TOPK,
|
|
38
|
+
TOPK, LAYERNORM,
|
|
39
|
+
INDEX,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
struct PrecisionTraits {
|
|
43
|
+
static constexpr size_t size_of(Precision prec) {
|
|
44
|
+
switch (prec) {
|
|
45
|
+
case Precision::INT8: return 1;
|
|
46
|
+
case Precision::FP16: return 2;
|
|
47
|
+
case Precision::FP32: return 4;
|
|
48
|
+
}
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static constexpr bool is_integer(Precision prec) {
|
|
53
|
+
switch (prec) {
|
|
54
|
+
case Precision::INT8: return true;
|
|
55
|
+
case Precision::FP16: return false;
|
|
56
|
+
case Precision::FP32: return false;
|
|
57
|
+
}
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static constexpr bool is_floating_point(Precision prec) {
|
|
62
|
+
switch (prec) {
|
|
63
|
+
case Precision::INT8: return false;
|
|
64
|
+
case Precision::FP16: return true;
|
|
65
|
+
case Precision::FP32: return true;
|
|
66
|
+
}
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
namespace Quantization {
|
|
72
|
+
void int8_to_fp32(const int8_t* src, float* dst, size_t count, float scale = 1.0f);
|
|
73
|
+
void fp32_to_int8(const float* src, int8_t* dst, size_t count, float scale = 1.0f);
|
|
74
|
+
void dynamic_quantize_fp32_to_int8(const float* src, int8_t* dst, size_t count,
|
|
75
|
+
float* computed_scale);
|
|
76
|
+
void fp16_to_fp32(const __fp16* src, float* dst, size_t count);
|
|
77
|
+
void fp32_to_fp16(const float* src, __fp16* dst, size_t count);
|
|
78
|
+
void int8_to_fp16(const int8_t* src, __fp16* dst, size_t count, float scale = 1.0f);
|
|
79
|
+
void fp16_to_int8(const __fp16* src, int8_t* dst, size_t count, float scale = 1.0f);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
struct TensorConfig {
|
|
83
|
+
Precision default_precision = Precision::INT8;
|
|
84
|
+
Precision compute_precision = Precision::INT8;
|
|
85
|
+
Precision output_precision = Precision::INT8;
|
|
86
|
+
bool auto_mixed_precision = false;
|
|
87
|
+
bool enable_int4_packing = true;
|
|
88
|
+
|
|
89
|
+
static TensorConfig& global();
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
struct BroadcastInfo {
|
|
93
|
+
std::vector<size_t> output_shape;
|
|
94
|
+
bool needs_broadcasting;
|
|
95
|
+
|
|
96
|
+
static BroadcastInfo compute(const std::vector<size_t>& lhs, const std::vector<size_t>& rhs);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
struct BufferDesc {
|
|
100
|
+
std::vector<size_t> shape;
|
|
101
|
+
size_t total_size;
|
|
102
|
+
size_t byte_size;
|
|
103
|
+
std::unique_ptr<char[]> data;
|
|
104
|
+
void* external_data;
|
|
105
|
+
Precision precision;
|
|
106
|
+
float quantization_scale;
|
|
107
|
+
|
|
108
|
+
BufferDesc();
|
|
109
|
+
BufferDesc(const std::vector<size_t>& s, Precision prec = Precision::INT8, float scale = 1.0f);
|
|
110
|
+
|
|
111
|
+
void* get_data();
|
|
112
|
+
const void* get_data() const;
|
|
113
|
+
|
|
114
|
+
template<typename T>
|
|
115
|
+
T* data_as() { return static_cast<T*>(get_data()); }
|
|
116
|
+
|
|
117
|
+
template<typename T>
|
|
118
|
+
const T* data_as() const { return static_cast<const T*>(get_data()); }
|
|
119
|
+
|
|
120
|
+
void allocate();
|
|
121
|
+
void set_external(void* ptr);
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
struct OpParams {
|
|
125
|
+
float scalar = 0.0f;
|
|
126
|
+
float scale = 1.0f;
|
|
127
|
+
float theta = 10000.0f;
|
|
128
|
+
float epsilon = 1e-6f;
|
|
129
|
+
int axis = -1;
|
|
130
|
+
bool pretransposed_rhs = false;
|
|
131
|
+
size_t position_offset = 0;
|
|
132
|
+
size_t slice_start = 0;
|
|
133
|
+
size_t slice_length = 0;
|
|
134
|
+
size_t window_size = 0;
|
|
135
|
+
bool is_causal = true; // Default to causal for backward compatibility
|
|
136
|
+
std::vector<size_t> new_shape;
|
|
137
|
+
std::vector<size_t> permutation;
|
|
138
|
+
Precision output_precision = Precision::INT8;
|
|
139
|
+
BroadcastInfo broadcast_info;
|
|
140
|
+
ComputeBackend backend = ComputeBackend::CPU;
|
|
141
|
+
|
|
142
|
+
size_t dilation = 1;
|
|
143
|
+
size_t stride = 1;
|
|
144
|
+
float temperature = 1.0f;
|
|
145
|
+
float top_p = 1.0f;
|
|
146
|
+
size_t top_k = 0;
|
|
147
|
+
size_t random_seed = 0;
|
|
148
|
+
|
|
149
|
+
size_t index_value = 0; // For INDEX operation
|
|
150
|
+
size_t num_classes = 0; // For scatter operations
|
|
151
|
+
size_t dst_height = 0;
|
|
152
|
+
size_t dst_width = 0;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
struct GraphNode {
|
|
156
|
+
size_t id;
|
|
157
|
+
OpType op_type;
|
|
158
|
+
std::vector<size_t> input_ids;
|
|
159
|
+
BufferDesc output_buffer;
|
|
160
|
+
OpParams params;
|
|
161
|
+
|
|
162
|
+
GraphNode(size_t node_id, OpType type);
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
template<typename T>
|
|
166
|
+
void dispatch_binary_op(OpType op, const T* lhs, const T* rhs, T* output, size_t count);
|
|
167
|
+
|
|
168
|
+
template<typename T>
|
|
169
|
+
void dispatch_unary_op(OpType op, const T* input, T* output, size_t count, float param = 0.0f);
|
|
170
|
+
|
|
171
|
+
void compute_node_optimized(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
172
|
+
void compute_matmul_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
173
|
+
void compute_transpose_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
174
|
+
void compute_reduce_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
175
|
+
void compute_fused_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
176
|
+
void compute_reshape_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
177
|
+
void compute_precision_cast_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
178
|
+
void compute_sample_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
179
|
+
void compute_scatter_topk_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
180
|
+
void compute_topk_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
181
|
+
void compute_layernorm_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
182
|
+
void compute_index_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
|
|
183
|
+
|
|
184
|
+
namespace ValidationUtils {
|
|
185
|
+
void validate_tensor_dims(const std::vector<size_t>& shape, size_t required_dims, const std::string& op_name);
|
|
186
|
+
void validate_precision(Precision actual, Precision required, const std::string& op_name);
|
|
187
|
+
void validate_input_count(size_t actual, size_t required, const std::string& op_name);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
class CactusGraph {
|
|
192
|
+
public:
|
|
193
|
+
CactusGraph();
|
|
194
|
+
|
|
195
|
+
struct DebugNodeEntry {
|
|
196
|
+
uint32_t layer_idx;
|
|
197
|
+
std::string name;
|
|
198
|
+
size_t node_id;
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
size_t input(const std::vector<size_t>& shape, Precision precision = Precision::INT8);
|
|
202
|
+
size_t precision_cast(size_t input, Precision target_precision);
|
|
203
|
+
|
|
204
|
+
size_t add(size_t input1, size_t input2);
|
|
205
|
+
size_t add_clipped(size_t input1, size_t input2); // For FP16 residual connections (Gemma)
|
|
206
|
+
size_t subtract(size_t input1, size_t input2);
|
|
207
|
+
size_t multiply(size_t input1, size_t input2);
|
|
208
|
+
size_t divide(size_t input1, size_t input2);
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
size_t scalar_add(size_t input, float value);
|
|
212
|
+
size_t scalar_subtract(size_t input, float value);
|
|
213
|
+
size_t scalar_multiply(size_t input, float value);
|
|
214
|
+
size_t scalar_divide(size_t input, float value);
|
|
215
|
+
size_t scalar_exp(size_t input);
|
|
216
|
+
size_t scalar_sqrt(size_t input);
|
|
217
|
+
size_t scalar_cos(size_t input);
|
|
218
|
+
size_t scalar_sin(size_t input);
|
|
219
|
+
|
|
220
|
+
size_t silu(size_t input);
|
|
221
|
+
size_t gelu(size_t input);
|
|
222
|
+
|
|
223
|
+
size_t matmul(size_t input1, size_t input2, bool pretransposed_rhs = false, ComputeBackend backend = ComputeBackend::CPU);
|
|
224
|
+
size_t transpose(size_t input, ComputeBackend backend = ComputeBackend::CPU);
|
|
225
|
+
size_t transposeN(size_t input, const std::vector<size_t>& permutation, ComputeBackend backend = ComputeBackend::CPU);
|
|
226
|
+
size_t reshape(size_t input, const std::vector<size_t>& new_shape);
|
|
227
|
+
size_t slice(size_t input, int axis, size_t start, size_t length);
|
|
228
|
+
size_t index(size_t input, size_t index_value, int dim);
|
|
229
|
+
|
|
230
|
+
size_t sum(size_t input, int axis);
|
|
231
|
+
size_t mean(size_t input, int axis);
|
|
232
|
+
size_t variance(size_t input, int axis);
|
|
233
|
+
size_t min(size_t input, int axis);
|
|
234
|
+
size_t max(size_t input, int axis);
|
|
235
|
+
|
|
236
|
+
size_t gather(size_t embeddings, size_t indices);
|
|
237
|
+
size_t mmap_embeddings(const std::string& filename);
|
|
238
|
+
size_t mmap_weights(const std::string& filename);
|
|
239
|
+
void set_quantization_scale(size_t node_id, float scale);
|
|
240
|
+
size_t embedding(const std::string& filename, size_t indices);
|
|
241
|
+
size_t embedding(size_t embedding_tensor, size_t indices);
|
|
242
|
+
size_t bilinear_interpolation(size_t pos_embeds, size_t dst_height, size_t dst_width);
|
|
243
|
+
|
|
244
|
+
size_t layernorm(size_t input, size_t weight, size_t bias, float epsilon = 1e-5f);
|
|
245
|
+
size_t topk(size_t input, size_t k);
|
|
246
|
+
size_t rms_norm(size_t input, size_t weight, float epsilon = 1e-5f);
|
|
247
|
+
size_t rope(size_t input, float theta, size_t position_offset = 0, ComputeBackend backend = ComputeBackend::CPU);
|
|
248
|
+
size_t softmax(size_t input, int axis = -1);
|
|
249
|
+
size_t attention(size_t query, size_t key, size_t value, float scale, bool is_causal = true, ComputeBackend backend = ComputeBackend::CPU);
|
|
250
|
+
size_t attention(size_t query, size_t key, size_t value, float scale, size_t position_offset, ComputeBackend backend = ComputeBackend::CPU);
|
|
251
|
+
size_t attention(size_t query, size_t key, size_t value, float scale, size_t position_offset, size_t window_size, ComputeBackend backend = ComputeBackend::CPU);
|
|
252
|
+
|
|
253
|
+
size_t conv1d_causal(size_t input, size_t weight, size_t kernel_size, size_t dilation = 1);
|
|
254
|
+
size_t conv1d_k3(size_t input, size_t weight, size_t stride);
|
|
255
|
+
|
|
256
|
+
size_t sample(size_t logits, float temperature = 0.6f, float top_p = 0.95f, size_t top_k = 20);
|
|
257
|
+
|
|
258
|
+
size_t concat(size_t input1, size_t input2, int axis = 0);
|
|
259
|
+
size_t scatter_topk(size_t indices, size_t values, size_t num_classes);
|
|
260
|
+
|
|
261
|
+
void set_input(size_t node_id, const void* data, Precision precision);
|
|
262
|
+
void set_external_input(size_t node_id, void* data, Precision precision);
|
|
263
|
+
void* get_output(size_t node_id);
|
|
264
|
+
|
|
265
|
+
void execute(const std::string& profile_file = "");
|
|
266
|
+
void hard_reset();
|
|
267
|
+
void soft_reset();
|
|
268
|
+
|
|
269
|
+
void register_debug_node(uint32_t layer_idx, const std::string& name, size_t node_id);
|
|
270
|
+
void capture_debug_node(uint32_t layer_idx, const std::string& name, size_t node_id);
|
|
271
|
+
const std::vector<DebugNodeEntry>& get_debug_nodes() const;
|
|
272
|
+
void clear_debug_nodes();
|
|
273
|
+
|
|
274
|
+
size_t add_node(OpType op_type, const std::vector<size_t>& inputs, const std::vector<size_t>& output_shape, const OpParams& params = {});
|
|
275
|
+
const BufferDesc& get_output_buffer(size_t node_id) const;
|
|
276
|
+
void allocate_buffers();
|
|
277
|
+
size_t get_node_count() const;
|
|
278
|
+
|
|
279
|
+
std::vector<std::unique_ptr<GraphNode>> nodes_;
|
|
280
|
+
std::unordered_map<size_t, size_t> node_index_map_;
|
|
281
|
+
|
|
282
|
+
private:
|
|
283
|
+
size_t next_node_id_;
|
|
284
|
+
std::vector<std::unique_ptr<GraphFile::MappedFile>> mapped_files_;
|
|
285
|
+
std::unordered_map<std::string, size_t> weight_cache_;
|
|
286
|
+
std::vector<DebugNodeEntry> debug_nodes_;
|
|
287
|
+
};
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
namespace GraphFile {
|
|
291
|
+
struct LoadedNode {
|
|
292
|
+
size_t node_id;
|
|
293
|
+
std::vector<size_t> shape;
|
|
294
|
+
Precision precision;
|
|
295
|
+
size_t byte_size;
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
void save_node(CactusGraph& graph, size_t node_id, const std::string& filename);
|
|
299
|
+
LoadedNode load_into_graph(CactusGraph& graph, const std::string& filename);
|
|
300
|
+
|
|
301
|
+
class MappedFile {
|
|
302
|
+
public:
|
|
303
|
+
MappedFile(const std::string& filename);
|
|
304
|
+
~MappedFile();
|
|
305
|
+
|
|
306
|
+
MappedFile(const MappedFile&) = delete;
|
|
307
|
+
MappedFile& operator=(const MappedFile&) = delete;
|
|
308
|
+
MappedFile(MappedFile&& other) noexcept;
|
|
309
|
+
MappedFile& operator=(MappedFile&& other) noexcept;
|
|
310
|
+
|
|
311
|
+
const std::vector<size_t>& shape() const;
|
|
312
|
+
Precision precision() const;
|
|
313
|
+
size_t byte_size() const;
|
|
314
|
+
float quantization_scale() const;
|
|
315
|
+
|
|
316
|
+
void* data();
|
|
317
|
+
const void* data() const;
|
|
318
|
+
|
|
319
|
+
template<typename T>
|
|
320
|
+
const T* typed_data() const;
|
|
321
|
+
|
|
322
|
+
LoadedNode load_into_graph(CactusGraph& graph) const;
|
|
323
|
+
|
|
324
|
+
private:
|
|
325
|
+
int fd_;
|
|
326
|
+
void* mapped_data_;
|
|
327
|
+
size_t file_size_, data_offset_;
|
|
328
|
+
std::vector<size_t> shape_;
|
|
329
|
+
Precision precision_;
|
|
330
|
+
size_t byte_size_;
|
|
331
|
+
float quantization_scale_;
|
|
332
|
+
void parse_header();
|
|
333
|
+
};
|
|
334
|
+
|
|
335
|
+
MappedFile mmap_load(const std::string& filename);
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
#endif
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
#ifndef KERNEL_H
|
|
2
|
+
#define KERNEL_H
|
|
3
|
+
|
|
4
|
+
#include <cstddef>
|
|
5
|
+
#include <arm_neon.h>
|
|
6
|
+
|
|
7
|
+
enum class ScalarOpType {
|
|
8
|
+
ADD,
|
|
9
|
+
SUBTRACT,
|
|
10
|
+
MULTIPLY,
|
|
11
|
+
DIVIDE,
|
|
12
|
+
EXP,
|
|
13
|
+
SQRT,
|
|
14
|
+
COS,
|
|
15
|
+
SIN
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
void cactus_add_int8(const int8_t* a, const int8_t* b, int8_t* output, size_t num_elements);
|
|
20
|
+
void cactus_subtract_int8(const int8_t* a, const int8_t* b, int8_t* output, size_t num_elements);
|
|
21
|
+
void cactus_multiply_int8(const int8_t* a, const int8_t* b, int8_t* output, size_t num_elements);
|
|
22
|
+
void cactus_divide_int8(const int8_t* a, const int8_t* b, int8_t* output, size_t num_elements);
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
void cactus_add_f16(const __fp16* a, const __fp16* b, __fp16* output, size_t num_elements);
|
|
26
|
+
void cactus_add_f16_clipped(const __fp16* a, const __fp16* b, __fp16* output, size_t num_elements);
|
|
27
|
+
void cactus_subtract_f16(const __fp16* a, const __fp16* b, __fp16* output, size_t num_elements);
|
|
28
|
+
void cactus_multiply_f16(const __fp16* a, const __fp16* b, __fp16* output, size_t num_elements);
|
|
29
|
+
void cactus_divide_f16(const __fp16* a, const __fp16* b, __fp16* output, size_t num_elements);
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
void cactus_add_f32(const float* a, const float* b, float* output, size_t num_elements);
|
|
33
|
+
void cactus_subtract_f32(const float* a, const float* b, float* output, size_t num_elements);
|
|
34
|
+
void cactus_multiply_f32(const float* a, const float* b, float* output, size_t num_elements);
|
|
35
|
+
void cactus_divide_f32(const float* a, const float* b, float* output, size_t num_elements);
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
void cactus_add_broadcast_int8(const int8_t* a, const int8_t* b, int8_t* output,
|
|
39
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
40
|
+
const size_t* output_shape, size_t ndim);
|
|
41
|
+
void cactus_subtract_broadcast_int8(const int8_t* a, const int8_t* b, int8_t* output,
|
|
42
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
43
|
+
const size_t* output_shape, size_t ndim);
|
|
44
|
+
void cactus_multiply_broadcast_int8(const int8_t* a, const int8_t* b, int8_t* output,
|
|
45
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
46
|
+
const size_t* output_shape, size_t ndim);
|
|
47
|
+
void cactus_divide_broadcast_int8(const int8_t* a, const int8_t* b, int8_t* output,
|
|
48
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
49
|
+
const size_t* output_shape, size_t ndim);
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
void cactus_add_broadcast_f16(const __fp16* a, const __fp16* b, __fp16* output,
|
|
53
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
54
|
+
const size_t* output_shape, size_t ndim);
|
|
55
|
+
void cactus_subtract_broadcast_f16(const __fp16* a, const __fp16* b, __fp16* output,
|
|
56
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
57
|
+
const size_t* output_shape, size_t ndim);
|
|
58
|
+
void cactus_multiply_broadcast_f16(const __fp16* a, const __fp16* b, __fp16* output,
|
|
59
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
60
|
+
const size_t* output_shape, size_t ndim);
|
|
61
|
+
void cactus_divide_broadcast_f16(const __fp16* a, const __fp16* b, __fp16* output,
|
|
62
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
63
|
+
const size_t* output_shape, size_t ndim);
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
void cactus_add_broadcast_f32(const float* a, const float* b, float* output,
|
|
67
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
68
|
+
const size_t* output_shape, size_t ndim);
|
|
69
|
+
void cactus_subtract_broadcast_f32(const float* a, const float* b, float* output,
|
|
70
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
71
|
+
const size_t* output_shape, size_t ndim);
|
|
72
|
+
void cactus_multiply_broadcast_f32(const float* a, const float* b, float* output,
|
|
73
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
74
|
+
const size_t* output_shape, size_t ndim);
|
|
75
|
+
void cactus_divide_broadcast_f32(const float* a, const float* b, float* output,
|
|
76
|
+
const size_t* a_strides, const size_t* b_strides,
|
|
77
|
+
const size_t* output_shape, size_t ndim);
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
void cactus_scalar_op_int8(const int8_t* input, int8_t* output, size_t num_elements, float scalar_value, ScalarOpType op_type);
|
|
81
|
+
void cactus_scalar_op_f16(const __fp16* input, __fp16* output, size_t num_elements, float scalar_value, ScalarOpType op_type);
|
|
82
|
+
void cactus_scalar_op_f32(const float* input, float* output, size_t num_elements, float scalar_value, ScalarOpType op_type);
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
void cactus_matmul_int8(const int8_t* a, const int8_t* b_transposed, int8_t* c,
|
|
86
|
+
size_t M, size_t K, size_t N,
|
|
87
|
+
float a_scale, float b_scale, float c_scale);
|
|
88
|
+
|
|
89
|
+
#if defined(__ARM_FEATURE_MATMUL_INT8)
|
|
90
|
+
void cactus_matmul_int8_to_int32_i8mm(const int8_t* a, const int8_t* b_transposed, int32_t* c,
|
|
91
|
+
size_t M, size_t K, size_t N);
|
|
92
|
+
#define cactus_matmul_int8_to_int32 cactus_matmul_int8_to_int32_i8mm
|
|
93
|
+
#else
|
|
94
|
+
void cactus_matmul_int8_to_int32(const int8_t* a, const int8_t* b_transposed, int32_t* c,
|
|
95
|
+
size_t M, size_t K, size_t N);
|
|
96
|
+
#endif
|
|
97
|
+
|
|
98
|
+
void cactus_matmul_f16(const __fp16* a, const __fp16* b_transposed, __fp16* c,
|
|
99
|
+
size_t M, size_t K, size_t N);
|
|
100
|
+
|
|
101
|
+
void cactus_matmul_f32(const float* a, const float* b_transposed, float* c,
|
|
102
|
+
size_t M, size_t K, size_t N);
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
void cactus_transpose_2d_int8(const int8_t* source, int8_t* destination,
|
|
106
|
+
size_t num_rows, size_t num_cols, size_t start_row, size_t end_row);
|
|
107
|
+
void cactus_transpose_2d_f32(const float* source, float* destination,
|
|
108
|
+
size_t num_rows, size_t num_cols, size_t start_row, size_t end_row);
|
|
109
|
+
|
|
110
|
+
void cactus_transpose_int8(const int8_t* source, int8_t* destination, const size_t* shape,
|
|
111
|
+
const size_t* permutation, size_t ndim, size_t start_idx, size_t end_idx);
|
|
112
|
+
void cactus_transpose_f32(const float* source, float* destination, const size_t* shape,
|
|
113
|
+
const size_t* permutation, size_t ndim, size_t start_idx, size_t end_idx);
|
|
114
|
+
|
|
115
|
+
int64_t cactus_sum_all_int8(const int8_t* data, size_t num_elements);
|
|
116
|
+
void cactus_sum_axis_int8(const int8_t* input, int8_t* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
117
|
+
double cactus_sum_all_f32(const float* data, size_t num_elements);
|
|
118
|
+
void cactus_sum_axis_f32(const float* input, float* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
119
|
+
|
|
120
|
+
double cactus_mean_all_int8(const int8_t* data, size_t num_elements);
|
|
121
|
+
void cactus_mean_axis_int8(const int8_t* input, int8_t* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
122
|
+
double cactus_mean_all_f16(const __fp16* data, size_t num_elements);
|
|
123
|
+
void cactus_mean_axis_f16(const __fp16* input, __fp16* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
124
|
+
double cactus_mean_all_f32(const float* data, size_t num_elements);
|
|
125
|
+
void cactus_mean_axis_f32(const float* input, float* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
126
|
+
|
|
127
|
+
double cactus_variance_all_int8(const int8_t* data, size_t num_elements);
|
|
128
|
+
void cactus_variance_axis_int8(const int8_t* input, int8_t* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
129
|
+
double cactus_variance_all_f32(const float* data, size_t num_elements);
|
|
130
|
+
void cactus_variance_axis_f32(const float* input, float* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
131
|
+
|
|
132
|
+
int64_t cactus_min_all_int8(const int8_t* data, size_t num_elements);
|
|
133
|
+
void cactus_min_axis_int8(const int8_t* input, int8_t* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
134
|
+
float cactus_min_all_f32(const float* data, size_t num_elements);
|
|
135
|
+
void cactus_min_axis_f32(const float* input, float* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
136
|
+
|
|
137
|
+
int64_t cactus_max_all_int8(const int8_t* data, size_t num_elements);
|
|
138
|
+
void cactus_max_axis_int8(const int8_t* input, int8_t* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
139
|
+
float cactus_max_all_f32(const float* data, size_t num_elements);
|
|
140
|
+
void cactus_max_axis_f32(const float* input, float* output, size_t outer_size, size_t axis_size, size_t inner_size);
|
|
141
|
+
|
|
142
|
+
void cactus_rms_norm_f16(const __fp16* input, const __fp16* weight, __fp16* output,
|
|
143
|
+
size_t batch_size, size_t dims, float eps);
|
|
144
|
+
|
|
145
|
+
void cactus_rms_norm_f32(const float* input, const float* weight, float* output,
|
|
146
|
+
size_t batch_size, size_t dims, float eps);
|
|
147
|
+
|
|
148
|
+
void cactus_rms_norm_i8_f32(const int8_t* input, const float* weight, float* output,
|
|
149
|
+
size_t batch_size, size_t dims, float eps, float input_scale);
|
|
150
|
+
|
|
151
|
+
void cactus_rope_f16(const __fp16* input, __fp16* output, size_t batch_size, size_t seq_len,
|
|
152
|
+
size_t num_heads, size_t head_dim, size_t start_pos, float theta);
|
|
153
|
+
|
|
154
|
+
void cactus_rope_f32(const float* input, float* output, size_t batch_size, size_t seq_len,
|
|
155
|
+
size_t num_heads, size_t head_dim, size_t start_pos, float theta);
|
|
156
|
+
|
|
157
|
+
void cactus_rope_i8_f32_i8(const int8_t* input, int8_t* output, size_t batch_size, size_t seq_len,
|
|
158
|
+
size_t num_heads, size_t head_dim, size_t start_pos, float theta,
|
|
159
|
+
float input_scale, float output_scale);
|
|
160
|
+
|
|
161
|
+
void cactus_softmax_f16(const __fp16* input, __fp16* output, size_t batch_size,
|
|
162
|
+
size_t seq_len, size_t vocab_size);
|
|
163
|
+
|
|
164
|
+
void cactus_softmax_f32(const float* input, float* output, size_t batch_size,
|
|
165
|
+
size_t seq_len, size_t vocab_size);
|
|
166
|
+
|
|
167
|
+
void cactus_silu_f32(const float* input, float* output, size_t num_elements);
|
|
168
|
+
void cactus_silu_f16(const __fp16* input, __fp16* output, size_t num_elements);
|
|
169
|
+
void cactus_silu_int8(const int8_t* input, int8_t* output, size_t num_elements,
|
|
170
|
+
float input_scale, float output_scale);
|
|
171
|
+
|
|
172
|
+
void cactus_gelu_f32(const float* input, float* output, size_t num_elements);
|
|
173
|
+
void cactus_gelu_f16(const __fp16* input, __fp16* output, size_t num_elements);
|
|
174
|
+
void cactus_gelu_int8(const int8_t* input, int8_t* output, size_t num_elements,
|
|
175
|
+
float input_scale, float output_scale);
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
void cactus_attention_int8(const int8_t* queries, const int8_t* keys, const int8_t* values, int8_t* output,
|
|
179
|
+
size_t batch_size, size_t seq_len, size_t kv_seq_len, size_t num_q_heads, size_t num_kv_heads,
|
|
180
|
+
size_t head_dim, float scale, const int8_t* mask,
|
|
181
|
+
float q_scale, float k_scale, float v_scale, float output_scale, size_t position_offset = 0, size_t window_size = 0,
|
|
182
|
+
bool is_causal = true);
|
|
183
|
+
|
|
184
|
+
void cactus_attention_f16(const __fp16* queries, const __fp16* keys, const __fp16* values, __fp16* output,
|
|
185
|
+
size_t batch_size, size_t seq_len, size_t kv_seq_len, size_t num_q_heads, size_t num_kv_heads,
|
|
186
|
+
size_t head_dim, float scale, const __fp16* mask, size_t position_offset = 0, size_t window_size = 0,
|
|
187
|
+
bool is_causal = true);
|
|
188
|
+
|
|
189
|
+
void cactus_attention_f32(const float* queries, const float* keys, const float* values, float* output,
|
|
190
|
+
size_t batch_size, size_t seq_len, size_t kv_seq_len, size_t num_q_heads, size_t num_kv_heads,
|
|
191
|
+
size_t head_dim, float scale, const float* mask, size_t position_offset = 0, size_t window_size = 0,
|
|
192
|
+
bool is_causal = true);
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
void cactus_conv1d_causal_depthwise_f32(
|
|
196
|
+
const float* input,
|
|
197
|
+
const float* weight,
|
|
198
|
+
float* output,
|
|
199
|
+
size_t N,
|
|
200
|
+
size_t L,
|
|
201
|
+
size_t C,
|
|
202
|
+
size_t K,
|
|
203
|
+
size_t dilation);
|
|
204
|
+
|
|
205
|
+
void cactus_conv1d_causal_depthwise_f16(
|
|
206
|
+
const __fp16* input,
|
|
207
|
+
const __fp16* weight,
|
|
208
|
+
__fp16* output,
|
|
209
|
+
size_t N,
|
|
210
|
+
size_t L,
|
|
211
|
+
size_t C,
|
|
212
|
+
size_t K,
|
|
213
|
+
size_t dilation);
|
|
214
|
+
|
|
215
|
+
void cactus_conv1d_causal_depthwise_int8(
|
|
216
|
+
const int8_t* input,
|
|
217
|
+
const int8_t* weight,
|
|
218
|
+
int8_t* output,
|
|
219
|
+
size_t N,
|
|
220
|
+
size_t L,
|
|
221
|
+
size_t C,
|
|
222
|
+
size_t K,
|
|
223
|
+
size_t dilation,
|
|
224
|
+
float input_scale,
|
|
225
|
+
float weight_scale,
|
|
226
|
+
float output_scale);
|
|
227
|
+
|
|
228
|
+
void cactus_conv1d_f32_k3(
|
|
229
|
+
const float* input,
|
|
230
|
+
const float* weight,
|
|
231
|
+
float* output,
|
|
232
|
+
size_t N, size_t L,
|
|
233
|
+
size_t C_in, size_t C_out,
|
|
234
|
+
size_t stride
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
void cactus_conv1d_f16_k3(
|
|
238
|
+
const __fp16* input,
|
|
239
|
+
const __fp16* weight,
|
|
240
|
+
__fp16* output,
|
|
241
|
+
size_t N, size_t L,
|
|
242
|
+
size_t C_in, size_t C_out,
|
|
243
|
+
size_t stride
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
void cactus_bilinear_interpolation_fp32(const float* input, float* output, size_t src_height, size_t src_width, size_t embed_dim,
|
|
247
|
+
size_t dst_height, size_t dst_width);
|
|
248
|
+
|
|
249
|
+
void cactus_sample_f32(const float* logits, uint32_t* output, size_t vocab_size,
|
|
250
|
+
float temperature, float top_p, size_t top_k, size_t random_seed);
|
|
251
|
+
void cactus_sample_f16(const __fp16* logits, uint32_t* output, size_t vocab_size,
|
|
252
|
+
float temperature, float top_p, size_t top_k, size_t random_seed);
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
void cactus_concat_f32(const float* input1, const float* input2, float* output,
|
|
256
|
+
const size_t* shape1, const size_t* shape2, const size_t* output_shape,
|
|
257
|
+
size_t ndims, int axis);
|
|
258
|
+
void cactus_concat_f16(const __fp16* input1, const __fp16* input2, __fp16* output,
|
|
259
|
+
const size_t* shape1, const size_t* shape2, const size_t* output_shape,
|
|
260
|
+
size_t ndims, int axis);
|
|
261
|
+
void cactus_concat_int8(const int8_t* input1, const int8_t* input2, int8_t* output,
|
|
262
|
+
const size_t* shape1, const size_t* shape2, const size_t* output_shape,
|
|
263
|
+
size_t ndims, int axis);
|
|
264
|
+
|
|
265
|
+
void cactus_int8_to_fp32(const int8_t* src, float* dst, size_t count, float scale = 1.0f);
|
|
266
|
+
void cactus_fp32_to_int8(const float* src, int8_t* dst, size_t count, float scale = 1.0f);
|
|
267
|
+
void cactus_dynamic_quantize_fp32_to_int8(const float* src, int8_t* dst, size_t count, float* computed_scale);
|
|
268
|
+
void cactus_fp16_to_fp32(const __fp16* src, float* dst, size_t count);
|
|
269
|
+
void cactus_fp32_to_fp16(const float* src, __fp16* dst, size_t count);
|
|
270
|
+
void cactus_int8_to_fp16(const int8_t* src, __fp16* dst, size_t count, float scale = 1.0f);
|
|
271
|
+
void cactus_fp16_to_int8(const __fp16* src, int8_t* dst, size_t count, float scale = 1.0f);
|
|
272
|
+
float cactus_fp16_max_abs(const __fp16* src, size_t count);
|
|
273
|
+
void cactus_int32_to_fp16_scaled(const int32_t* src, __fp16* dst, size_t count, float scale);
|
|
274
|
+
|
|
275
|
+
#endif
|