{"id":13424567,"url":"https://github.com/jfalcou/eve","last_synced_at":"2025-07-02T15:03:54.968Z","repository":{"id":37078923,"uuid":"165121620","full_name":"jfalcou/eve","owner":"jfalcou","description":"Expressive Vector Engine - SIMD in C++ Goes Brrrr","archived":false,"fork":false,"pushed_at":"2025-06-30T12:40:18.000Z","size":60208,"stargazers_count":1210,"open_issues_count":96,"forks_count":61,"subscribers_count":29,"default_branch":"main","last_synced_at":"2025-06-30T13:37:47.031Z","etag":null,"topics":["aarch64","altivec","avx","avx2","cpp","cpp-library","hpc","neon","simd","simd-library","simd-parallelism","simd-programming","sse2","ssse3"],"latest_commit_sha":null,"homepage":"https://jfalcou.github.io/eve/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfalcou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-01-10T19:52:33.000Z","updated_at":"2025-06-30T12:29:54.000Z","dependencies_parsed_at":"2024-03-16T23:20:06.174Z","dependency_job_id":"99751fdf-8672-4c36-90a3-cb4c53174165","html_url":"https://github.com/jfalcou/eve","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/jfalcou/eve","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Feve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Feve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Feve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Feve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfalcou","download_url":"https://codeload.github.com/jfalcou/eve/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Feve/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263163012,"owners_count":23423490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aarch64","altivec","avx","avx2","cpp","cpp-library","hpc","neon","simd","simd-library","simd-parallelism","simd-programming","sse2","ssse3"],"created_at":"2024-07-31T00:00:56.326Z","updated_at":"2025-07-02T15:03:54.949Z","avatar_url":"https://github.com/jfalcou.png","language":"C++","funding_links":[],"categories":["Tools","Math"],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/jfalcou/eve/raw/main/doc/logo.png\" alt=\"\" data-canonical-src=\"https://github.com/jfalcou/eve/raw/main/doc/logo.png\" align=\"left\"  width=\"15%\" height=\"15%\" /\u003e\n\n# EVE - the Expressive Vector Engine\n\n[![Licence](https://img.shields.io/github/license/jfalcou/eve?style=plastic)](https://img.shields.io/github/license/jfalcou/eve?style=plastic)\n[![Discord](https://img.shields.io/discord/692734675726237696?style=plastic)](https://discord.gg/8A4Q4HkhcW)\n\n## Purpose\n\nEVE is a re-implementation of the old EVE SIMD library by Falcou et al., which for a while was\nnamed Boost.SIMD. It's a C++20 and onward implementation of a type-based wrapper around\nSIMD extensions sets for most current architectures. It aims to show how C++20 can be used\nto design and implement an efficient, low-level, high-abstraction library suited for high performance.\n\nIt's a research project first and an open-source library second. We reserve the right to\nchange the API and baseline compiler required until the first official 0.1 release. However, we'll try\nto minimise disruption. Semantic versioning will ensure API retro-compatibility if anything huge\nneeds to change.\n\n## Getting Started\n\n - [Installing and using the library](https://jfalcou.github.io/eve/setup.html)\n - [Your first SIMD code using EVE](https://jfalcou.github.io/eve/intro-01.html)\n - [The complete set of EVE tutorials](https://jfalcou.github.io/eve/usergroup1.html)\n - [References Documentation](https://jfalcou.github.io/eve/usergroup4.html)\n\n## Video materials\n\n### SIMD in C++20: EVE of a new Era - CppCon 2021\n\n[![SIMD in C++20: EVE of a new Era - CppCon 2021](http://img.youtube.com/vi/WZGNCPBMInI/0.jpg)](http://www.youtube.com/watch?v=WZGNCPBMInI \"Video Title\")\n\n### SIMD Algorithms Design\n\n[![Playlist by Denis Yaroshevskiy](http://img.youtube.com/vi/U1e_k8xmwR0/0.jpg)](https://www.youtube.com/playlist?list=PLYCMvilhmuPEM8DUvY6Wg_jaSFHpmlSBD)\n\n## Current status - Operational\n\nEVE is considered **operational**: it's usable and has a large feature set for a sensible number of instruction sets. However, some values or performance issues may still remain. Don't hesitate to report any funky code generation or bad optimisations so we can deliver the best performance around.\n\n### Current roster of supported Instruction Sets\n\nIn terms of SIMD extension sets, we actively support (ie code is optimised and regularly tested) the following:\n\nFull support with tests:\n  - **Intel**\n    - SSE2, SSSE3, SSE3, SSE4.1, SSE4.2\n    - AVX, AVX2, FMA3\n    - AVX512 in Skylake-AVX512 mode (F, CD, VL, DQ, BW)\n  - **ARM**\n    - NEON A32 (64 \u0026 128 bits)\n    - NEON A64 (64 \u0026 128 bits)\n    - ASIMD\n    - SVE with fixed sizes of 128, 256 and 512 bits registers.\n\nPartial/In-progress support with minimal checks:\n  - **PowerPC**\n    - VMX\n    - VSX\n\nWe **do not support** ARM SVE with **dynamic size** or GPGPU; this is the job of another tool.\n\n### Current roster of supported compilers\n\nEVE requires a C++20-compliant compiler. The main features from C++17/20 we require are:\n - Concepts and requires\n - Template lambdas\n - Inline variables\n - Non-Type Template Parameters\n - `if constexpr`\n - Functions from `\u003cbits\u003e`\n\nHere is the current minimal compiler version supported:\n\n| Compiler       | Version       |\n| -------------- | ------------- |\n| g++            | 13 or above   |\n| clang++        | 16 or above   |\n| Visual Studio  | *TBD*         |\n\nVisual Studio support is currently being added.\n\nThe current **recommended** compiler version are:\n\n| Compiler       | Version       |\n| -------------- | ------------- |\n| g++            | 14 or above   |\n| clang++        | 19 or above   |\n\n## FAQ\n\n - **Why C++20 ?** We want to be able to use modern design components like Concepts and, later, Modules. C++14 is for 2014.\n   We fully know it may hinder adoption in some situations, but we're not running a race. We value proper design and API choice over\n   complex retro-compatibility.\n\n - **Why this instead of std::simd or any other libraries?** EVE is a playground for testing proper\n   design and implementation decisions for such libraries. Vc and its standard version are fine work, \n   but we aim to push the envelope regarding API and implementation without standard\n   restrictions. We will try to keep up with standard naming as much as possible.\n\n - **Is this Boost.SIMD v42.69?** Yes and no. This reimplementation is based on slightly different\n   premises and some radical new ideas. Our previous Boost exhibited all results.SIMD papers\n   still hold, and we'll try to improve upon.\n\n - **I want to help!** That's Good. We need tests on exotic configurations, maybe a stable PPC test machine.\n   Write code, make it fail, and fork and hack away. This will allow us to improve for use cases we may have missed.\n   We would also value input (even harsh ones) on how we use our CI infrastructure or how our CMake looks.\n   We tried our best, but those elements are complex all by themselves.\n\n## Bibliographic References\n\nIf you want to refer to EVE, you can use those papers (by order of preference in citation).\nA new, more up-to-date EVE-specific journal paper is in the works at the moment.\n\n - **Modern Generative Programming for Optimizing Small Matrix-Vector Multiplication**, Jules Penuchot, Joel Falcou, Amal Khabou in *HPCS 2018*\n - **Boost. simd: generic programming for portable simdization**, Pierre Estérie, Joel Falcou, Mathias Gaunard, Jean-Thierry Lapresté, *PACT 2012*\n - **EVE, an object oriented SIMD library**, Joel Falcou, Jocelyn Serot in *Scalable Computing: Practice and Experience 6 (4)*\n\n ## License\n\n```\nBoost Software License\n\nCopyright: EVE Project Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfalcou%2Feve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfalcou%2Feve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfalcou%2Feve/lists"}