Scroll to navigation

ispc(1) General Commands Manual ispc(1)

NAME

ispc - Intel Implicit SPMD Program Compiler

SYNOPSIS

ispc [options] file

DESCRIPTION

ispc is a compiler for a variant of the C programming language, with extensions for single program, multiple data programming. Under the SPMD model, the programmer writes a program that generally appears to be a regular serial program, though the execution model is actually that a number of program instances execute in parallel on the hardware.

OPTIONS

Select 32- or 64-bit addressing. (Note that 32-bit addressing calculations are done by default, even on 64-bit target architectures.)

Select target architecture

Always use terminal colors in error/warning messages

An alias for --device <type> switch

#define given value when running preprocessor

Emit device-side offload stub functions to file

Select target device

<type> = { x86-64 , atom (synonyms: bonnell ), core2, penryn, corei7 (synonyms: nehalem ), btver2 (synonyms: ps4 ), corei7-avx (synonyms: sandybridge ), core-avx-i (synonyms: ivybridge ), core-avx2 (synonyms: haswell ), broadwell, skylake, knl, skx, icelake-client (synonyms: icl ), slm (synonyms: silvermont ), icelake-server (synonyms: icx ), tigerlake (synonyms: tgl ), alderlake (synonyms: adl ), sapphirerapids (synonyms: spr ), znver1, znver2 (synonyms: ps5 ), znver3, cortex-a9, cortex-a15, cortex-a35, cortex-a53, cortex-a57, apple-a7, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14 }

Make non-static functions DLL exported. Windows target only

Generate source-level debug information with given DWARF version (triggers -g ). Ignored for Windows target

Run only the preprocessor

Generate assembly language file as output

Emit LLVM bitcode file as output

Emit LLVM bitcode file as output in textual form

Generate object file file as output (default)

Enable experimental feature to call LLVM intrinsics from ISPC source code

Limit maximum number of errors emitting by ISPC to <value>

Force alignment in memory allocations routine to be <value>

Generate source-level debug information

Print help

--help-dev
Print help for developer options

Emit host-side offload stub functions to file

Output filename for header

Add <path> to #include file search path

Suppress errors from the preprocessor

Emit instrumentation to gather performance data

Select math library

Use ispc's built-in math functions
Use high-performance but lower-accuracy math functions
Use the Intel(r) SVML math libraries
Use the system's math library (*may be quite slow*)

Write #include dependencies to given file.

Output a rule suitable for make describing the dependencies of the main source file to stdout.

When used with -M, specifies a file to write the dependencies to.

When used with -M, changes the target of the rule emitted by dependency generation.

Disable frame pointer omission. It may be useful for profiling

Don't make the ispc standard library available

Don't use #pragma once in created headers

Don't run the C preprocessor

Output filename (may be "-" for standard output)

Set optimization level. Default behavior is to optimize for speed.

Optimizations disabled.
Optimization for size.

Set optimization option

Remove assertion statements from final code.
Disable 'fused multiply-add' instructions (on targets that support them)
Disable loop unrolling.
Disable using zmm registers for avx512 targets in favour of ymm. This also affects ABI.
fast-masked-vload
Faster masked vector loads on SSE (may go past end of array)
fast-math
Perform non-IEEE-compliant optimizations of numeric expressions
Always issue "aligned" vector load and store instructions

Generate position-independent code. Ignored for Windows target

Suppress all output

Print full matrix of supported targets, architectures and OSes

Select target ISA and width. <t> ={ sse2-i32x4, sse2-i32x8, sse4-i8x16, sse4-i16x8, sse4-i32x4, sse4-i32x8, avx1-i32x4, avx1-i32x8, avx1-i32x16, avx1-i64x4, avx2-i8x32, avx2-i16x16, avx2-i32x4, avx2-i32x8, avx2-i32x16, avx2-i64x4, avx512knl-x16, avx512skx-x4, avx512skx-x8, avx512skx-x16, avx512skx-x32, avx512skx-x64, neon-i8x16, neon-i16x8, neon-i32x4, neon-i32x8, wasm-i32x4 }

--target-os <os>
Select target OS. <os> ={ linux, custom_linux, freebsd, android, web }

Turn on time profiler. Generates JSON file based on output filename.

Minimum time granularity (in microseconds) traced by time profiler.

Enable/disable vectorcall calling convention on Windows (x64 only). Disabled by default

Print ispc version

Treat warnings as errors

Disable warnings

Don't issue warnings related to performance-related issues

Select style of code if generating assembly

Emit Intel-style assembly
Emit AT&T-style assembly

SEE ALSO

https://ispc.github.io/

AUTHOR

ispc is written by Intel Corporation.

This manual page was written by Yangfl for the Debian Project (and may be used by others).