-
Notifications
You must be signed in to change notification settings - Fork 227
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
Feat: Implementation of the DeepSeek blockwise quantization for fp8 tensors #1763
base: main
Are you sure you want to change the base?
Feat: Implementation of the DeepSeek blockwise quantization for fp8 tensors #1763
Conversation
- fp8 triton gemm - quant, dequant and linear utils - time & precision benchmarks - basic tests
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/ao/1763
Note: Links to docs will display an error until the docs builds have been completed. ❌ 11 New FailuresAs of commit 8d68d45 with merge base 25ddb77 ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
…:Degnel/ao into feat/blockwise_fp8_quant_triton_gemm_ker
Thanks for running the tests. I have two questions regarding the errors:
|
Can you clarify what you mean? Are tests failing in CI due to a missing triton installation? That shouldn't be happening, please share the link/logs if so.
We just use helpers which skip tests if GPU architecture is not at least SM 89: Line 619 in f478692
You can find examples in the float8 tests (example). |
Indeed, they are. It looks like only the CPU runs are failing. I presume that bitsandbytes might not install triton when no GPU is available (I might be missing something there). Here is an instance of a failing log:
Thank you for the hint, I've locally updated the code accordingly 👍 |
W_q, W_s = fp8_blockwise_weight_quant(W, block_size, dtype) | ||
output_blockwise = blockwise_fp8_gemm(A_q, A_s, W_q, W_s) | ||
|
||
quantize_(lin, int8_dynamic_activation_int4_weight()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why is int8_dynamic_activation_int4_weight
being used here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank's for noticing it. I was aiming for a static W4A8 quantization and I overlooked that it was dynamic. I will try to address this within the week.
Also @Degnel you should skip tests requiring triton if CUDA is not available. |
@Degnel thanks for your work on this, i ran the tests and it looks like your blockwise fp8 gemm test is failing due to quantization error |
This PR is the first step towards addressing issue #1594. It includes the following implementations:
If the code is validated, it would be great to bench it on H100.