Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add triton implementation of layer norm #260

Draft
wants to merge 34 commits into
base: main
Choose a base branch
from
Draft

Add triton implementation of layer norm #260

wants to merge 34 commits into from

Conversation

epwalsh
Copy link
Member

@epwalsh epwalsh commented Sep 6, 2023

Addresses #258.

Adds a triton implementation of layer norm. At the moment this builds on #274, so either one can be merged.

I've included a benchmark that you can run with:

python tests/triton/layer_norm_bench.py

I've also added a script for building wheels from AMD's fork of triton. As far as I know the script can be ran on any Linux machine (such as a Beaker interactive session on cirrascale):

./scripts/build_triton.sh

This will build and upload the wheel to s3://ai2-llm/wheels/. I've already built one and tested it on LUMI.

You can run the tests on LUMI like this:

sbatch scripts/triton-test-on-lumi.sh

At the moment the low-precision tests are failing, but at least the fp32 ones pass. I've opened an issue here with a minimal example: ROCm/triton#323

@epwalsh epwalsh changed the title Add some experimental triton components Add triton implementation of layer norm Sep 20, 2023
@epwalsh
Copy link
Member Author

epwalsh commented Sep 26, 2023

Unfortunately this did not work well on LUMI, even when running the LN in full precision. The purple run here is using AMDLayerNorm and the beige is using this triton implementation.

image

@epwalsh epwalsh added the status/blocked Progress can't be made because we're waiting on something outside of our control label Sep 26, 2023
@epwalsh
Copy link
Member Author

epwalsh commented Sep 26, 2023

I'm marking this blocked until we figure out what's wrong with triton on LUMI.

@epwalsh epwalsh mentioned this pull request Sep 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/blocked Progress can't be made because we're waiting on something outside of our control
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant