HackerTrans
TopNewTrendsCommentsPastAskShowJobs

junrushao1994

no profile record

Submissions

Scaling LLama2-70B with Multiple Nvidia/AMD GPU

blog.mlc.ai
13 points·by junrushao1994·3 ปีที่แล้ว·6 comments

MLC LLM: 70B Llama-2-4bit on MacBook at 50%-80% speed of A100

twitter.com
12 points·by junrushao1994·3 ปีที่แล้ว·3 comments

Running RedPajama and other open LLMs on phones, browsers and AMD/NV/Intel GPUs

mlc.ai
11 points·by junrushao1994·3 ปีที่แล้ว·0 comments

MLC: Bringing Hardware Accelerated Language Models to Consumer Devices

mlc.ai
8 points·by junrushao1994·3 ปีที่แล้ว·0 comments

MLC-LLM: GPT/Llama on consumer-class GPUs and phones

github.com
303 points·by junrushao1994·3 ปีที่แล้ว·106 comments

comments

junrushao1994
·3 ปีที่แล้ว·discuss
This is great! Have you guys considered integrating with one of the existing systems?
junrushao1994
·3 ปีที่แล้ว·discuss
Yeah thanks for sharing! This is definitely super valuable data and insights :)

Regarding exllama-V2, MLC/TVM does benchmark against it:

- Single GPU: https://github.com/mlc-ai/llm-perf-bench#int4-quantized-sing...

- Multi GPU: Figure 2 in the blog: http://blog.mlc.ai/2023/10/19/Scalable-Language-Model-Infere...

> vLLM focuses more on batching performance

Exactly. vLLM doesn’t optimize for latency-first scenarios as it focuses on throughput, i.e. batching. This particular blog post instead focuses particular on latency, i.e. the fastest you could possible get with those many GPUsz

Regarding batching, it is coming pretty soon, and we will have another blog post on this.
junrushao1994
·3 ปีที่แล้ว·discuss
Machine Learning Compilation (MLC) now supports compiling LLMs to multiple GPUs.

For Llama2-70B, it runs 4-bit quantized Llama2-70B at:

- 34.5 tok/sec on two NVIDIA RTX 4090 at $3k

- 29.9 tok/sec on two AMD Radeon 7900XTX at $2k

- Also it is scales well with 8 A10G/A100 GPUs in our experiment.

Details:

- Blog post: https://blog.mlc.ai/2023/10/19/Scalable-Language-Model-Infer...

- Project: https://github.com/mlc-ai/mlc-llm
junrushao1994
·3 ปีที่แล้ว·discuss
Ah please help us by submitting a PR! I noticed the rust build failed last night but didn’t get a chance to look into it
junrushao1994
·3 ปีที่แล้ว·discuss
This is a particular unique course offering introduction on ML compilation and deployment :)
junrushao1994
·3 ปีที่แล้ว·discuss
As of today performance in WebGPU isn't as competitive yet, but there are really quite a lot of low-hanging fruits for WebGPU to pick up.
junrushao1994
·3 ปีที่แล้ว·discuss
That's a great idea! We should dig around and see if there's any plugin to use
junrushao1994
·3 ปีที่แล้ว·discuss
This is amazing to hear Steven! (Sorry I locked myself out of discord a couple of days ago...) I'm sure there's bunch of features missing like biased sampling you mentioned, and more than happy to merge PRs if you'd love to :)
junrushao1994
·3 ปีที่แล้ว·discuss
True and there are some other issues to be addressed. Those two particular issue is on our roadmap.

Regarding quantization, we wanted to develop a code path that absorbs any quantization formats, for example, those from GGML or GPTQ, so that they could be all used. ML compilation (MLC) is agnostic to any quantization formats, but we just haven't exposed such abstractions yet.

On CPU offloading, imagine if you are writing PyTorch, it should be as simple as a one-liner `some_tensor.cpu()` to bring something down to host memory, and `some_tensor.cuda()` to get it back to CUDA - seems a low-hanging fruit but it's not implemented yet in MLC LLM :( Lots of stuff to do and we should make this happen soon.
junrushao1994
·3 ปีที่แล้ว·discuss
LLM decoding is dominated by memory bandwidth, and 3090Ti and 4090 happen to have the identical theoretical memory bandwidth
junrushao1994
·3 ปีที่แล้ว·discuss
We haven't done any comparison them yet, but generally we believe Vulkan as a more generic cross-vendor API should be slower than ROCm. Same for CUDA vs Vulkan.
junrushao1994
·3 ปีที่แล้ว·discuss
Well, I'm very much into true open source, and my belief is that any contributor is automatically part of the team :)
junrushao1994
·3 ปีที่แล้ว·discuss
Generally speaking I expect Vulkan to be slower than ROCm given it's designed for generic gaming across GPU vendors, so the takeaway is, whenever ROCm is available and usable, we should use ROCm. And it's the same for CUDA vs Vulkan.
junrushao1994
·3 ปีที่แล้ว·discuss
> Can you comment on how difficult it was to achieve this, and what the relative advantages b/w cards?

Thanks for asking! I personally believe TVM Unity is a proper software stack for ML compilation (MLC), and its existing optimizations (e.g. TensorCore offloading) can be transparently transferred to AMD/Intel/Apple/mobile GPUs without too much engineering effort.

Of course my claim is limited to ML workloads. Not an expert outside the ML world, so I couldn't say for general HPC.
junrushao1994
·3 ปีที่แล้ว·discuss
Really depends on how good ROCm support for WSL2 is. Our team don't have a windows machine so could not verify ourselves, but if you got ROCm set up properly on WSL2, MLC LLM should work out of the box
junrushao1994
·3 ปีที่แล้ว·discuss
ROCm has improved a lot over the past few months, and now ROCm 5.6 seems to work out of box by just following this tutorial: https://rocm.docs.amd.com/en/latest/deploy/linux/installer/i.... TVM Unity, the underlying compiler MLC LLM uses, seems to work out of box too on ROCm 5.6 - from Bohan Hou who sets up the environment
junrushao1994
·3 ปีที่แล้ว·discuss
yeah we tried out popular solutions like exllama and llama.cpp among others that support inference of 4bit quantized models
junrushao1994
·3 ปีที่แล้ว·discuss
tbh im not sure what amds plan is on ROCm support on consumer devices, but i dont really think amd is being fraudulent or something.

Both rocm and vulkan are supported in MLC LLM as mentioned in our blog post. we are aware that rocm is not sufficient to cover consumer hardwares, and in this case vulkan is a nice backup!
junrushao1994
·3 ปีที่แล้ว·discuss
One of the authors here. Glad it’s on HackerNews!

There are two points I personally wanted to make through this project:

1) With a sufficiently optimized software stack, AMD GPUs can be sufficiently cost-efficient to use in LLM serving; 2) ML compilation (MLC) techniques, through its underlying TVM Unity software stack, are the best fit in terms of cross-hardware generalizable performance optimizations, quickly delivering time-to-market values, etc.

So far, to the best of our knowledge, MLC LLM delivers the best performance across NVIDIA and AMD GPUs in single-batch inference on quantized models, and batched/distributed inference is on the horizon too.
junrushao1994
·3 ปีที่แล้ว·discuss
I don't think TVM advertised a lot on its full capabilities, for example, high-perf codegen for dynamic shapes without auto-tuning, or auto-tuning-based codegen, at least in the past few years, and that might be one of the factors it doesn't got a lot of visibility.