Some backends allow target specific optimizations. Especially TVM support the following target specific flags to enable specific schedules or features:
device (i.e. arm_cpu, cuda,...)
mcpu
model
mattr (i.e. +neon)
keys
We should find a way to update these automatically given the used target. (i.e. to enable usage of SIMD intrisincs which are only available on a given set of devices). However this transformation should be optional and thus should be enabled explicitly. By default, generic (portable) implementations should be used by the backend.
Open questions:
How would we name such feature (i.e. overwriteopts)? Or should it just be a per-target config option (i.e. spike.overwrite_backend_options=1)?
Some backends allow target specific optimizations. Especially TVM support the following target specific flags to enable specific schedules or features:
device
(i.e.arm_cpu
,cuda
,...)mcpu
model
mattr
(i.e.+neon
)keys
We should find a way to update these automatically given the used target. (i.e. to enable usage of SIMD intrisincs which are only available on a given set of devices). However this transformation should be optional and thus should be enabled explicitly. By default, generic (portable) implementations should be used by the backend.
Open questions:
overwriteopts
)? Or should it just be a per-target config option (i.e.spike.overwrite_backend_options=1
)?