ncnn is a high-performance neural network inference framework designed for mobile, embedded, and desktop deployment. It provides a self-contained C++ library with no mandatory external dependencies, supporting CPU inference with extensive SIMD optimizations (ARM NEON, x86 SSE/AVX/AVX512, RISC-V Vector, MIPS MSA, LoongArch LSX/LASX) and GPU inference via Vulkan. The framework includes a comprehensive set of neural network layers (convolution, pooling, normalization, activation, recurrent, attention, etc.) and supports multiple data types (float32, float16, bfloat16, int8). The companion pnnx tool converts models from PyTorch (TorchScript) and ONNX into ncnn format using a sophisticated graph rewriting pipeline. Python bindings and a model zoo are provided for rapid prototyping. The codebase is production-grade, used in Tencent applications like QQ and WeChat, and is actively maintained with support for modern architectures and operations (e.g., scaled dot-product attention, rotary embeddings).
This repository provides a header-only library, NEON_2_SSE.h, that enables porting of ARM NEON intrinsics code to x86 platforms by mapping ARM NEON intrinsics to equivalent x86 SIMD intrinsics (SSE, AVX2, etc.). The library is designed to be used as a drop-in replacement for arm_neon.h when compiling for x86, allowing developers to write SIMD code using NEON intrinsics that can be compiled on both ARM and x86 without modification. The project includes a CMake-based build system for installation and packaging, and the header is self-contained, requiring only the target platform's compiler intrinsics headers. The codebase appears to be stale, with the latest copyright dates in the provided files (LICENSE, CMakeLists.txt) indicating updates up to 2020. The provided last commit date (2026-04-28) is invalid (future date), suggesting a data error, but the file copyrights imply no recent activity. The library focuses on compatibility up to AVX2 and does not show signs of technical drift, as it relies on stable compiler intrinsics interfaces. The primary value lies in the NEON_2_SSE.h header, which implements a non-trivial mapping between SIMD architectures.