awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
ispc avatar

ispc/ispc

0
View on GitHub↗
2,843 stars·343 forks·C++·bsd-3-clause·25 views

Ispc

ISPC is a vectorizing compiler and SIMD parallel programming language that implements a single program multiple data model. It serves as a toolchain for translating C-based code with parallel extensions into optimized machine code for various CPU and GPU architectures using an LLVM backend.

The compiler is designed for cross-platform SIMD toolchain support, generating specialized instruction sets for x86 SSE/AVX, ARM NEON, and Intel GPU from a single source. It features a runtime dispatch mechanism that selects the most efficient hardware-specific implementation for the current system during program startup.

The system supports hybrid scaling by distributing vectorized workloads across multiple processor cores and vector lanes. It provides direct interoperability with C and C++ via memory pointers to share data structures between serial application code and parallel kernels.

The project provides a cross-platform build system utilizing Docker definitions to ensure reproducible build environments.

Features

  • SIMD Parallel Programming - Provides a language for writing programs that automatically use CPU vector units and GPU execution units.
  • SPMD Compilation Models - Implements a Single Program Multiple Data model to run multiple instances in parallel across SIMD lanes on CPUs and GPUs.
  • Vectorized Code Generation - Produces highly optimized vectorized machine code that rivals hand-written intrinsics for significant performance gains.
  • SIMD-Accelerated Arithmetic - Automatically utilizes processor-specific SIMD instruction sets to accelerate standard code execution.
  • Cross-Compilation Toolchains - Provides a build system and compiler capable of generating executable binaries for diverse vector instruction sets from one host.
  • Multi-Core Workload Distribution - Distributes vectorized workloads across multiple processor cores to achieve near-linear performance scaling.
  • SPMD - Provides a programming model with parallel extensions to run many program instances simultaneously on vector hardware.
  • SIMD Languages - Implements a SIMD parallel programming language with a single program multiple data model.
  • Cross-Platform SIMD Compilation - Generates optimized machine code for x86 SSE/AVX, ARM NEON, and Intel GPU from a single source.
  • LLVM-Based Compilers - Utilizes the LLVM compiler infrastructure to generate optimized machine code for various CPU and GPU architectures.
  • Vectorizing Compilers - Uses an LLVM backend to generate optimized vector machine code for x86, ARM, and GPU architectures.
  • SIMD Instruction Generation - Generates optimized machine code for a wide range of vector instruction sets from a single source.
  • Multi-Target Compilers - Compiles a single program for both vector units and graphics execution units by selecting the backend at build time.
  • SPMD Compilers - Translates C-based code with parallel extensions into vectorized instructions for CPUs and GPUs.
  • High-Performance Computing - Accelerates computationally intensive tasks by distributing vectorized workloads across multiple CPU cores and hardware accelerators.
  • Vector Instruction Targets - Produces specialized vector instruction sets for x86 SSE/AVX, ARM NEON, and Intel GPU from a single source.
  • SIMD Workload Distribution - Distributes vectorized workloads across multiple processor cores to multiply the performance gains of SIMD lanes.
  • Cross-Architecture Binary Compilation - Provides the ability to compile software into executable binaries for multiple target hardware architectures.
  • Parallel Execution Debugging - Supports the use of standard debugging tools to inspect SPMD executions across distributed compute nodes.
  • C Interoperability Layers - Implements a specialized layer for direct function calls and pointer-based data sharing between serial C++ and parallel SPMD kernels.
  • Native C Interoperability - Provides interfaces for calling and sharing data between parallel kernels and serial C++ application code.
  • Native Pointer Attachments - Shares data structures between parallel and serial code using direct memory pointers to avoid serialization overhead.
  • Profile-Guided and Link-Time Optimizations - Supports link-time and profile-guided optimizations to maximize the performance of the final compiled binary.
  • Hardware Dispatchers - Detects host processor capabilities at startup to select the most efficient hardware-specific SIMD implementation.
  • Scalar-to-Vector Transformations - Automatically generates high-performance vector instructions from scalar code to avoid manual intrinsics.
  • System Library Compatibility - Compiles against the oldest available system libraries to ensure the resulting binary runs on all current distributions.
  • Hybrid Parallel Scaling - Distributes vectorized workloads across both multiple processor cores and vector lanes to maximize hardware utility.
  • Software Portability Layers - Generates code for multiple processor families and graphics hardware to ensure portability across hardware generations.
  • Hashing - C implementation of the MurMur hashing algorithm.
  • Compilers - Compiler for single program, multiple data programming.
  • Parallel Programming Frameworks - SPMD compiler for high-performance SIMD programming.

Star history

Star history chart for ispc/ispcStar history chart for ispc/ispc

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Ispc

These projects share indexed features with Ispc. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • c3lang/c3cc3lang avatar

    c3lang/c3c

    5,147View on GitHub↗

    c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte

    C3c3compilerlanguage
    View on GitHub↗5,147
  • google/highwaygoogle avatar

    google/highway

    5,644View on GitHub↗

    Highway is a portable C++ library and hardware abstraction layer designed for writing single instruction multiple data (SIMD) code. It provides a unified interface that maps data-parallel logic to various CPU instruction sets, enabling the development of high-performance software that runs across different processor architectures without requiring architecture-specific assembly. The project features a dynamic instruction dispatcher that selects the most efficient CPU instruction set at runtime based on detected hardware. It also supports static target specialization and extensible mechanisms

    C++
    View on GitHub↗5,644
  • nim-lang/nimnim-lang avatar

    nim-lang/Nim

    18,071View on GitHub↗

    Nim is a statically typed, compiled systems programming language designed for high performance and cross-platform development. It translates high-level source code into C, C++, or JavaScript, allowing developers to produce efficient native binaries or web-compatible scripts from a single codebase. The language emphasizes a clean, indentation-based syntax that simplifies code hierarchy while maintaining the power of a full-featured systems language. What distinguishes Nim is its robust metaprogramming framework, which allows developers to inspect, modify, and generate code structures during th

    Nimcompilerefficienthacktoberfest
    View on GitHub↗18,071
  • android/ndk-samplesandroid avatar

    android/ndk-samples

    10,513View on GitHub↗

    The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++ native code into Android applications. This repository serves as a practical guide for developers utilizing the Android Native Development Kit to implement performance-critical application components that require direct hardware access and low-level system interaction. The project highlights the use of the Java Native Interface to bridge managed code with native modules, enabling cross-language function calls and efficient data exchange. It demonstrates how to manage native act

    C++
    View on GitHub↗10,513
Compare all 30 related projects→

Frequently asked questions

What does ispc/ispc do?

ISPC is a vectorizing compiler and SIMD parallel programming language that implements a single program multiple data model. It serves as a toolchain for translating C-based code with parallel extensions into optimized machine code for various CPU and GPU architectures using an LLVM backend.

What are the main features of ispc/ispc?

The main features of ispc/ispc are: SIMD Parallel Programming, SPMD Compilation Models, Vectorized Code Generation, SIMD-Accelerated Arithmetic, Cross-Compilation Toolchains, Multi-Core Workload Distribution, SPMD, SIMD Languages.

Which projects share features with ispc/ispc?

Projects with overlapping indexed features include: c3lang/c3c — c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static… google/highway — Highway is a portable C++ library and hardware abstraction layer designed for writing single instruction multiple data… nim-lang/nim — Nim is a statically typed, compiled systems programming language designed for high performance and cross-platform… android/ndk-samples — The Android NDK samples provide a comprehensive collection of code examples demonstrating how to integrate C and C++… embarkstudios/rust-gpu — Rust-GPU is a compiler and toolchain that translates Rust source code into SPIR-V bytecode for execution on graphics… parallel101/course — This project is a technical curriculum and set of educational resources focused on parallel programming,…