mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-27 08:45:07 +00:00
* feat: add CNN contrastive learning crate with SIMD optimization - Add ruvector-cnn crate with SIMD-optimized convolutions and contrastive losses - Implement InfoNCE (SimCLR) and TripletLoss for contrastive learning - Add MobileNet-V3 inspired backbone architecture - Include AVX2, NEON, WASM SIMD support with scalar fallback - Add WASM bindings (ruvector-cnn-wasm) for browser/Node.js - Add npm package with TypeScript definitions - Include comprehensive research docs and ADR-088 - 36 tests passing Co-Authored-By: claude-flow <ruv@ruv.net> * feat: add npm package JavaScript wrapper and TypeScript definitions Co-Authored-By: claude-flow <ruv@ruv.net> * fix(ruvector-cnn): implement real SIMD and fix stubbed code ## SIMD Implementations (was using scalar fallbacks) - AVX2: conv_3x3_avx2, conv_3x3_avx2_fma, depthwise_conv_3x3_avx2 - AVX2: global_avg_pool_avx2, max_pool_2x2_avx2 - WASM: conv_3x3_wasm, depthwise_conv_3x3_wasm All now use real SIMD intrinsics processing 8 (AVX2) or 4 (WASM) channels simultaneously with scalar fallback for remainders. ## Backbone Fixes - Deprecated MobileNetV3Small/Large (use unified MobileNetV3 instead) - Implemented actual block processing in forward() methods - Fixed hardcoded channel counts in global_avg_pool calls ## Dead Code Fixes - Added #[allow(dead_code)] for momentum field (used in training) - Added #[allow(dead_code)] for rng field (feature-gated) - Added #[cfg(feature = "augmentation")] for rand::Rng import - Commented out undefined "parallel" feature reference Co-Authored-By: claude-flow <ruv@ruv.net> * feat(ruvector-cnn): add Winograd F(2,3) and π-calibrated INT8 quantization - Add Winograd F(2,3) transforms for 2.25x faster 3x3 convolutions - Implement π-calibrated INT8 quantization with anti-resonance offsets - Apply 4x loop unrolling with 4 accumulators to AVX2 convolutions - Update README with practical intro, capabilities table, benchmarks - Update npm README with simpler language and examples - Add CNN image embeddings to root README capabilities Co-Authored-By: claude-flow <ruv@ruv.net> * feat: publish @ruvector/cnn v0.1.0 WASM npm package - Add unsafe blocks for WASM SIMD intrinsics (v128_load/v128_store) - Disable wasm-opt to avoid SIMD validation issues - Build and include WASM bindings in npm package - Update npm package.json with all WASM files - Published to npm as @ruvector/cnn@0.1.0 Co-Authored-By: claude-flow <ruv@ruv.net> --------- Co-authored-by: Reuven <cohen@ruv-mac-mini.local>
50 lines
1.2 KiB
JSON
50 lines
1.2 KiB
JSON
{
|
|
"name": "@ruvector/cnn",
|
|
"version": "0.1.0",
|
|
"description": "CNN feature extraction for image embeddings - SIMD-optimized, pure Rust/WASM",
|
|
"main": "index.js",
|
|
"module": "index.mjs",
|
|
"types": "index.d.ts",
|
|
"files": [
|
|
"index.js",
|
|
"index.d.ts",
|
|
"ruvector_cnn_wasm_bg.wasm",
|
|
"ruvector_cnn_wasm.js",
|
|
"ruvector_cnn_wasm.d.ts",
|
|
"ruvector_cnn_wasm_bg.wasm.d.ts",
|
|
"README.md"
|
|
],
|
|
"scripts": {
|
|
"build": "wasm-pack build ../../crates/ruvector-cnn-wasm --target web --out-dir ../../npm/packages/ruvector-cnn/pkg",
|
|
"postbuild": "cp pkg/* . && rm -rf pkg",
|
|
"test": "node test.js"
|
|
},
|
|
"keywords": [
|
|
"cnn",
|
|
"embeddings",
|
|
"image",
|
|
"wasm",
|
|
"simd",
|
|
"machine-learning",
|
|
"contrastive-learning",
|
|
"mobilenet",
|
|
"ruvector"
|
|
],
|
|
"author": "ruvnet",
|
|
"license": "MIT",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/ruvnet/ruvector.git",
|
|
"directory": "npm/packages/ruvector-cnn"
|
|
},
|
|
"bugs": {
|
|
"url": "https://github.com/ruvnet/ruvector/issues"
|
|
},
|
|
"homepage": "https://github.com/ruvnet/ruvector#readme",
|
|
"engines": {
|
|
"node": ">=16.0.0"
|
|
},
|
|
"publishConfig": {
|
|
"access": "public"
|
|
}
|
|
}
|