awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ispc avatar

ispc/ispc

0
View on GitHub↗
2,843 星标·343 分支·C++·bsd-3-clause·6 次浏览

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.
  • 哈希 - C implementation of the MurMur hashing algorithm.
  • 编译器 - Compiler for single program, multiple data programming.
  • Parallel Programming Frameworks - SPMD compiler for high-performance SIMD programming.

Star 历史

ispc/ispc 的 Star 历史图表ispc/ispc 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Ispc 的开源替代方案

相似的开源项目,按与 Ispc 的功能重合度排序。
  • c3lang/c3cc3lang 的头像

    c3lang/c3c

    5,147在 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
    在 GitHub 上查看↗5,147
  • google/highwaygoogle 的头像

    google/highway

    5,644在 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++
    在 GitHub 上查看↗5,644
  • nim-lang/nimnim-lang 的头像

    nim-lang/Nim

    18,071在 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
    在 GitHub 上查看↗18,071
  • android/ndk-samplesandroid 的头像

    android/ndk-samples

    10,513在 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++
    在 GitHub 上查看↗10,513
查看 Ispc 的所有 30 个替代方案→

常见问题解答

ispc/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.

ispc/ispc 的主要功能有哪些?

ispc/ispc 的主要功能包括:SIMD Parallel Programming, SPMD Compilation Models, Vectorized Code Generation, SIMD-Accelerated Arithmetic, Cross-Compilation Toolchains, Multi-Core Workload Distribution, SPMD, SIMD Languages。

ispc/ispc 有哪些开源替代品?

ispc/ispc 的开源替代品包括: 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,…