Skip to contents

Constructs the quickr backend, which stores array data as plain R arrays and compiles jitted functions to R code via the quickr package.

Usage

AnvlBackendQuickr()

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.

Supported data types

f64, i32 and bool – the three R storage types.