Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals.
I think we should revisit the name of our feature flags and backends. To make things simple we should have:
tch => libtorch
wgpu-spirv => vulkan
wgpu => webgpu
cuda-jit => cuda
Some feature flags are meant to customize a backend, they should be specific for that backend:
cuda => candle-cuda, libtorch-cuda
metal => candle-metal, libtorch-metal
openblas => ndarray-openblas
accelerate => ndarray-accelerate
Essentially, we're making backends made with cubecl first class, meaning we don't need to prefix things with cubecl like cubecl-vulkan, cubecl-cuda or cubecl-fusion, but for the third-party backends, I think it's more flexible, since we won't have feature flags that may clash with our own. In that sense, we may also rename burn-jit to burn-cubecl, since it's pretty much the backend built on top of cubecl.
I think we should revisit the name of our feature flags and backends. To make things simple we should have:
tch
=>libtorch
wgpu-spirv
=>vulkan
wgpu
=>webgpu
cuda-jit
=>cuda
Some feature flags are meant to customize a backend, they should be specific for that backend:
cuda
=>candle-cuda
,libtorch-cuda
metal
=>candle-metal
,libtorch-metal
openblas
=>ndarray-openblas
accelerate
=>ndarray-accelerate
Essentially, we're making backends made with
cubecl
first class, meaning we don't need to prefix things withcubecl
likecubecl-vulkan
,cubecl-cuda
orcubecl-fusion
, but for the third-party backends, I think it's more flexible, since we won't have feature flags that may clash with our own. In that sense, we may also renameburn-jit
toburn-cubecl
, since it's pretty much the backend built on top ofcubecl
.