Comments (4)
Triton does have associative scan, but (1) it only supports scan with 1 float instead of a pair of floats, which is what we need (2) it doesn't have reverse scan yet (needed for the backward pass).
Does Pallas have those?
When Triton has more robust support for scan, it would be simpler to write it in Triton.
from mamba.
Triton did not support some of the operations. In particular their associative scan function is quite limited right now (and sometimes buggy / difficult to use); on the other hand CUDA has quite sophisticated support for scans (https://developer.nvidia.com/gpugems/gpugems3/part-vi-gpu-computing/chapter-39-parallel-prefix-sum-scan-cuda).
I think it should be possible in principle to implement something similar in Pallas, but I don't know how efficient it would be.
from mamba.
Ideally it would be nice to be truly hardware agnostic, in the spirit of the Mamba mission statement. Tying the architecture to CUDA may not be the best way.
from mamba.
Thanks for the response @tridao & @albertfgu, indeed Triton doesn't have the support, and Pallas wouldn't be much use here as it lowers to Triton. We'll work on a JAX interface to the CUDA kernels.
from mamba.
Related Issues (20)
- Building wheel for mamba-ssm (setup.py) ... error HOT 5
- using ssm_state and conv_state during training HOT 6
- nnUNet environment variables are redefined? HOT 1
- Segmentation Fault HOT 1
- Is it running autoregressively? HOT 2
- _layer_norm_fwd_1pass_kernel error HOT 7
- RuntimeError: CUDA error: no kernel image is available for execution on the device on 3xP40 HOT 1
- Question about finetuning
- Code for training Transformer++ HOT 1
- Any suggestions for regularization? HOT 2
- does forward/eval from a trained mamba model require cuda as well? HOT 5
- Question about throughput HOT 4
- Direct Throughput Comparison to RetNet ? HOT 2
- WARNING HOT 4
- Question about cuda speedup HOT 3
- Does Mamba use any matrix multiplication? HOT 2
- Mamba is deeper but narrower than typical models of the same size HOT 2
- selective_scan_cuda HOT 3
- Packaging module missing when installing HOT 2
- Bidirectional model? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mamba.