Pre compilation vs run time compilation in OpenCL - clMathLibraries/clBLAS GitHub Wiki

# Pre-compile (or called offline compile):

Compile/build OpenCL kernels to binary file, save to the disk, and load them during run time (or called execution time)

  • Drawback: Assume users know their device before hand. Built code are device-specific. like, the code compiled for Hawaii may (I only say may) not run on Fiji, vice verse.
  • Advantage: no overhead of loading kernels

No-precompile = online compile = run time compile.

Build in the run time

  • Advantage: not device dependent. Query device first and then build upon it.
  • Drawback: There is latency of loading. Yet, the kernel is usually cached. So the latency of subsequent calling is minimized.