Constructs the quickr backend, which stores array data as plain R arrays and compiles jitted functions to R code via the quickr package.
Value
(AnvlBackend)
With subclass "AnvlBackendQuickr".
Details
Registered automatically under the name "quickr" when the package is
loaded; call local_backend("quickr") or
with_backend("quickr", ...) to use it. Requires the
quickr package to be installed.
Data representation
An AnvlArray with backend = "quickr" is, under the hood, a plain R
vector or array (numeric, integer, or logical) stored in the $data
field. as_array() returns the underlying vector/array directly without
copying, and nv_array() simply wraps an R vector/array. Data always lives
in R's memory and computation always runs on the CPU, so the only device is
quickr_device("cpu"); every array still carries it in
$device.
Status
This backend is experimental and has a number of limitations:
Compilation (tracing + quickr lowering) is somewhat slow, so it is best suited to long-running or repeatedly-called functions where the one-time compilation cost is amortized.
Only a subset of the primitives that the PJRT backend supports are currently lowered to quickr code. See the Primitives Reference article for an overview.
Only CPU execution is supported.
Only three data types are supported; see the section below.