Remove the torchao integration (--torchao-config) (#34304)

Co-authored-by: Brayden Zhong <brayden@radixark.ai>
This commit is contained in:
Brayden Zhong
2026-08-14 21:49:11 +08:00
committed by GitHub
co-authored by Brayden Zhong
parent fe0c18effd
commit 5e65dd01a7
23 changed files with 6 additions and 309 deletions
-92
View File
@@ -1,92 +0,0 @@
import unittest
import requests
from transformers import AutoProcessor
from sglang import Engine
from sglang.srt.utils import kill_process_tree
from sglang.test.kits.eval_accuracy_kit import MMLUMixin
from sglang.test.test_utils import (
DEFAULT_IMAGE_URL,
DEFAULT_MODEL_NAME_FOR_TEST,
DEFAULT_SMALL_VLM_MODEL_NAME_FOR_TEST,
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
DEFAULT_URL_FOR_TEST,
CustomTestCase,
build_vlm_image_prompt,
is_in_amd_ci,
popen_launch_server,
)
class TestTorchAO(CustomTestCase, MMLUMixin):
mmlu_score_threshold = 0.60
mmlu_num_examples = 64
mmlu_num_threads = 32
@classmethod
def setUpClass(cls):
cls.model = DEFAULT_MODEL_NAME_FOR_TEST
cls.base_url = DEFAULT_URL_FOR_TEST
cls.process = popen_launch_server(
cls.model,
cls.base_url,
timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
other_args=["--torchao-config", "int4wo-128"],
)
@classmethod
def tearDownClass(cls):
kill_process_tree(cls.process.pid)
def run_decode(self, max_new_tokens):
response = requests.post(
self.base_url + "/generate",
json={
"text": "The capital of France is",
"sampling_params": {
"temperature": 0,
"max_new_tokens": max_new_tokens,
},
"ignore_eos": True,
},
)
return response.json()
def test_throughput(self):
import time
max_tokens = 256
tic = time.perf_counter()
res = self.run_decode(max_tokens)
tok = time.perf_counter()
print(res["text"])
throughput = max_tokens / (tok - tic)
print(f"Throughput: {throughput} tokens/s")
if is_in_amd_ci():
assert throughput >= 150
else:
assert throughput >= 210
class TestTorchAOForVLM(CustomTestCase):
def test_vlm_generate(self):
model_path = DEFAULT_SMALL_VLM_MODEL_NAME_FOR_TEST
text = build_vlm_image_prompt(
AutoProcessor.from_pretrained(model_path), "What is in this picture?"
)
engine = Engine(
model_path=model_path,
max_total_tokens=512,
enable_multimodal=True,
torchao_config="fp8wo",
)
out = engine.generate([text], image_data=[DEFAULT_IMAGE_URL])
engine.shutdown()
self.assertGreater(len(out), 0)
if __name__ == "__main__":
unittest.main()
@@ -32,29 +32,6 @@ class TestSRTEngineWithQuantArgs(CustomTestCase):
engine.generate(prompt, sampling_params)
engine.shutdown()
def test_2_torchao_args(self):
# we don't test int8dq because currently there is conflict between int8dq and capture cuda graph
torchao_args_list = [
# "int8dq",
"int8wo",
"fp8wo",
"fp8dq-per_tensor",
"fp8dq-per_row",
] + [f"int4wo-{group_size}" for group_size in [32, 64, 128, 256]]
prompt = "Today is a sunny day and I like"
model_path = DEFAULT_SMALL_MODEL_NAME_FOR_TEST
sampling_params = {"temperature": 0, "max_new_tokens": 8}
for torchao_config in torchao_args_list:
engine = sgl.Engine(
model_path=model_path, random_seed=42, torchao_config=torchao_config
)
engine.generate(prompt, sampling_params)
engine.shutdown()
if __name__ == "__main__":
unittest.main()