(->module driver
sched-data-seq
&
{:keys [build-config target-host]
:or {build-config tvm-api/default-build-config target-host :llvm}
:as opts})
Given a sequence of schedule-data, return a map of name to clojure callable function. A module is created and added to the resource context transparently. Schedule data: {:name :fn-name :arglist arguments :schedule schedule :bind-map (optional) bind-map } returns: {:module module :fn-map map of name->IFn (clojure callable function.)
Given a sequence of schedule-data, return a map of name to clojure callable function. A module is created and added to the resource context transparently. Schedule data: {:name :fn-name :arglist arguments :schedule schedule :bind-map (optional) bind-map } returns: {:module module :fn-map map of name->IFn (clojure callable function.)
(call-function stream fn & args)
Call a tvm function on this stream with these arguments.
Call a tvm function on this stream with these arguments.
(device-id item)
Generically get the tvm device id from a thing.
Generically get the tvm device id from a thing.
(device-type item)
Generically get the tvm device type from a thing
Generically get the tvm device type from a thing
(has-byte-offset? buffer)
Used for code generation, because some tvm driver buffer types do not support pointer offsetting, you pass in a pointer + byte offset when doing' code generation.
Used for code generation, because some tvm driver buffer types do not support pointer offsetting, you pass in a pointer + byte offset when doing' code generation.
(make-cpu-device-buffer datatype elem-count)
Make a cpu device buffer. These are used as host buffers for all devices and device buffers for the cpu device.
Make a cpu device buffer. These are used as host buffers for all devices and device buffers for the cpu device.
(schedule->fn driver
{:keys [schedule name arglist bind-map] :as schedule-data}
&
args)
(schedule-injective! driver schedule compute-op-or-vec options)
A large class of functions are injective, meaning that they are result-element by result-element parallelizeable. Thus fusing all axis and then running things in parallel works at least passably well.
A large class of functions are injective, meaning that they are result-element by result-element parallelizeable. Thus fusing all axis and then running things in parallel works at least passably well.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close