Как выполнять тесты производительности с помощью vLLM на Dell Pro Max 16 Plus с платой Qualcomm Inference Card в Linux
Summary: Узнайте, как выполнять эталонные тесты с помощью vLLM на Dell Pro Max 16 Plus с платой Qualcomm Inference Card в ОС Linux.
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
- Скачивание контейнера программы Qualcomm (QPC)
Скачать готовую модель ИИ QPC из каталога предварительно скомпилированных моделей Zentree - Каталог предварительно скомпилированных моделей Zentree-Qualcomm для облачных ускорителейИИ
Примечание. Чтобы убедиться, что QPC совместим с Dell Pro Max, выполните поискSoCs / Tensor slicing = 2tar -xzvf ~/Downloads/qpc_name.tar.gz - Обслуживание большой языковой модели (LLM) с помощью vLLM.
Откройте терминал и выполните следующую команду (замените<QPC_DIR>,<MODEL_ID>,<CTX_LEN>,<BATCH_SIZE>и<PREFILL_SEQ_LEN>).Примечание. Что<MODEL_ID>,<CTX_LEN>,<BATCH_SIZE>и<PREFILL_SEQ_LEN>зависит от конфигурации компиляции QPC. Для QPC, созданных и размещенных Zentree, эти значения задокументированы на их веб-сайте. Сопоставление выглядит следующим образом:<BATCH_SIZE>с параметром «Полный размер партии»,<CTX_LEN>с "Context Length (CL)," и<PREFILL_SEQ_LEN>с "Chunking Prompt Length" из таблицы Zentree model QPC Configurations. Также обратите внимание, что некоторые модели требуют, чтобы вы настроили токен Huggingface, который вам нужно будет передать в контейнер для доступа.docker run --rm -it \ --name qaic-bench --device=/dev/accel/accel1 \ --device=/dev/accel/accel2 \ --network host \ --ulimit nofile=1048576 \ -e OMP_NUM_THREADS=8 \ -e HF_TOKEN=$HF_TOKEN \ -v ~/Downloads/<QPC_DIR>:/root/qpc \ ghcr.io/quic/cloud_ai_inference_ubuntu24:1.20.6.0 \ /opt/vllm-env/bin/vllm serve <MODEL_ID> \ --max-num-seq <BATCH_SIZE> \ --max-model-len <CTX_LEN> \ --max-seq_len-to-capture <PREFILL_SEQ_LEN> \ --device qaic \ --device-group 0,1 \ --quantization mxfp6 \ --kv-cache-dtype mxint8 \ --override-qaic-config "qpc_path=/root/qpc/qpc"Примечание. Все QPC для Dell Pro Max, размещенные на сервере Zentree, содержатnum_devices=2, но если модель построена сnum_devices=1Затем--device-groupдолжно быть установлено в0или1.
Все QPC для Dell Pro Max, размещенные на сервере Zentree, содержатmxfp6_matmul=true, но если модель построена сmxfp6_matmul=falseЗатем--quantization mxfp6должны быть отброшены.
Все QPC для Dell Pro Max, размещенные на сервере Zentree, содержатmxint8_kv_cache=true, но если модель построена сmxint8_kv_cache=falseЗатем--kv-cache-dtype mxint8должны быть отброшены.
Как только появится сообщение «Запуск приложения завершен», модель готова к формированию вывода.
Чтобы остановить vLLM (выгрузить модель и закрыть контейнер), нажмите Ctrl+C в этом окне терминала . Разгрузка более крупных моделей может занять до 1 минуты.
Справочные материалы: Docker — руководствопользователя Qualcomm Cloud AI SDK и vLLM — руководство
пользователя Qualcomm Cloud AI SDK
- Выполните сравнительную оценку.
Откройте новый терминал и выполните следующую команду (замените<MODEL_ID>и<BATCH_SIZE>в соответствии с моделью, показанной на шаге 2). Значения дляnum-prompts,random-input-lenиrandom-output-lenможно отрегулировать по желанию.docker exec -it qaic-bench \ /opt/vllm-env/bin/vllm bench serve \ --model \ --num-prompts 25 \ --max-concurrency \ --random-input-len 256 \ --random-output-len 256
После завершения тестирования производительность vLLM печатает полученные метрики.
Примечание. Чтобы рассчитать пропускную способность (токенов в секунду или TPS) только для этапа декодирования (генерации токенов), исключая этап предварительного заполнения (обработки запросов), можно рассчитать TPS, используя 1000 ÷ среднего TPOT (мс).
Например, среднее значение TPOT 20 мс соответствует пропускной способности декодирования 50 токенов в секунду (TPS).
Рабочий пример:- Скачайте предварительно собранный QPC Qwen3-30B-A3B-Instruct-2507.
Для этого сборника схем мы используем предварительно созданный QPC для Qwen3 30B A3B Instruct 2507.
Доступны 2 предварительно собранные модели, которые работают на плате логического вывода AI100, поддерживающей 2 SoC - одну с длиной контекста 4K, а другую с длиной контекста 8K. В этом сценарии используется модель длины контекста 2 SoC и 4K.
Выполните следующие действия, чтобы скачать и извлечь QPC из архива. Обратите внимание, что если у вас еще не установлен curl, вы можете установить его в терминал с помощью команды (sudo apt install curl).# Use existing Downloads folder for model downloads cd ~/Downloads # Download QPC archive from Zentree as qwen3-30b-a3b-instruct-2507.tar.gz curl -fSL https://dc00tk1pxen80.cloudfront.net/SDK1.20.4/Qwen/Qwen3-30B-A3B-Instruct-2507/ Qwen3-30B-A3B-Instruct-2507_qpc_16cores_1pl_4096cl_1bs_2devices_mxfp6_mxint8.tar.gz -o qwen3-30b-a3b-instruct-2507.tar.gz # Extract QPC archive tar -xzvf qwen3-30b-a3b-instruct-2507.tar.gz # Rename extracted directory to qwen3-30b-a3b-instruct-2507-qpc mv $(tar -tzf qwen3-30b-a3b-instruct-2507.tar.gz | head -1 | cut -f1 -d"/") qwen3-30b-a3b-instruct-2507-qpc - Обслуживаем модель Qwen3:30B с помощью vLLM.
Откройте терминал и выполните следующую команду. Обратите внимание на общий рецепт выше, что<QPC_DIR>отображается с помощью команды "-v ~/Downloads/qwen3-30b-a3b-instruct-2507-qpc:/root/qpc" в каталог QPC, в который загружена модель,<MODEL_ID>сопоставляется с "Qwen/Qwen3-30B-A3B-Instruct-2507,"<CTX_LEN>сопоставлен с 4096,<BATCH_SIZE>сопоставляется с 1, а<PREFILL_SEQ_LEN>сопоставлено с 1 (все со страницы модели Zentree для модели Qwen3:30B с использованием длины контекста 4K).
Обратите внимание, что если вы ранее не использовали эту версию контейнера Docker AI100, он получает ~14 ГБ перед открытием контейнера Docker.docker run --rm -it \ --name qaic-bench \ --device=/dev/accel/accel1 \ --device=/dev/accel/accel2 \ --network host \ --ulimit nofile=1048576 \ -e OMP_NUM_THREADS=8 \ -v ~/Downloads/qwen3-30b-a3b-instruct-2507-qpc:/root/qpc \ ghcr.io/quic/cloud_ai_inference_ubuntu24:1.20.6.0 \ /opt/vllm-env/bin/vllm serve Qwen/Qwen3-30B-A3B-Instruct-2507 \ --max-num-seq 1 \ --max-model-len 4096 \ --max-seq_len-to-capture 1 \ --device qaic \ --device-group 0,1 \ --quantization mxfp6 \ --kv-cache-dtype mxint8 \ --override-qaic-config "qpc_path=/root/qpc/qpc"
Модель готова к логическому выводу, как только вы увидите сообщение «Application startup complete».
Примечание. Чтобы остановить vLLM (выгрузку модели и закрытие контейнера), нажмите Ctrl+C в этом окне терминала. Разгрузка более крупных моделей может занять до 1 минуты.
Ссылки: Docker — руководствопользователя Qualcomm Cloud AI SDK и vLLM — руководство
пользователя Qualcomm Cloud AI SDK
- Выполните сравнительную оценку.
Откройте новый терминал и выполните следующую команду (замените<MODEL_ID>Для--modelи<BATCH_SIZE>Для--max-concurrencyв соответствии с моделью, показанной на шаге 2). Значения дляnum-prompts,random-input-lenиrandom-output-lenможно отрегулировать по желанию.docker exec -it qaic-bench \ /opt/vllm-env/bin/vllm bench serve \ --model Qwen/Qwen3-30B-A3B-Instruct-2507 \ --num-prompts 25 \ --max-concurrency 1 \ --random-input-len 256 \ --random-output-len 256 - Захват выходных данных выборки.
Пример выходных данных для обслуживания Qwen3:30B с использованием vLLM.
Пример выходных данных для vLLM:dell@dell:~/Downloads/qwen3-30b-a3b-instruct-2507-qpc$ docker run --rm -it \ --name qaic-bench \ --device=/dev/accel/accel1 \ --device=/dev/accel/accel2 \ --network host \ --ulimit nofile=1048576 \ -e OMP_NUM_THREADS=8 \ -v ~/Downloads/qwen3-30b-a3b-instruct-2507-qpc:/root/qpc \ ghcr.io/quic/cloud_ai_inference_ubuntu24:1.20.6.0 \ /opt/vllm-env/bin/vllm serve Qwen/Qwen3-30B-A3B-Instruct-2507 \ --max-num-seq 1 \ --max-model-len 4096 \ --max-seq_len-to-capture 1 \ --device qaic \ --device-group 0,1 \ --quantization mxfp6 \ --kv-cache-dtype mxint8 \ --override-qaic-config "qpc_path=/root/qpc/qpc" loading /opt/qti-aic/dev/lib/x86_64/libQAic.so INFO 01-15 17:46:28 [__init__.py:269] Automatically detected platform qaic. INFO 01-15 17:46:30 [api_server.py:1043] vLLM API server version 0.8.6.dev0+gba41cc90e.d20251229 INFO 01-15 17:46:30 [api_server.py:1044] args: Namespace(subparser='serve', model_tag='Qwen/Qwen3-30B-A3B-Instruct-2507', config='', host=None, port=8000, uvicorn_log_level='info', disable_uvicorn_access_log=False, allow_credentials=False, allowed_origins=['*'], allowed_methods=['*'], allowed_headers=['*'], api_key=None, lora_modules=None, prompt_adapters=None, chat_template=None, chat_template_content_format='auto', response_role='assistant', ssl_keyfile=None, ssl_certfile=None, ssl_ca_certs=None, enable_ssl_refresh=False, ssl_cert_reqs=0, root_path=None, middleware=[], return_tokens_as_token_ids=False, disable_frontend_multiprocessing=False, enable_request_id_headers=False, enable_auto_tool_choice=False, tool_call_parser=None, tool_parser_plugin='', model='Qwen/Qwen3-30B-A3B-Instruct-2507', task='auto', tokenizer=None, hf_config_path=None, skip_tokenizer_init=False, revision=None, code_revision=None, tokenizer_revision=None, tokenizer_mode='auto', trust_remote_code=False, allowed_local_media_path=None, load_format='auto', download_dir=None, model_loader_extra_config={}, use_tqdm_on_load=True, config_format=<ConfigFormat.AUTO: 'auto'>, dtype='auto', max_model_len=4096, guided_decoding_backend='auto', reasoning_parser=None, logits_processor_pattern=None, model_impl='auto', distributed_executor_backend=None, pipeline_parallel_size=1, tensor_parallel_size=1, data_parallel_size=1, enable_expert_parallel=False, max_parallel_loading_workers=None, ray_workers_use_nsight=False, disable_custom_all_reduce=False, block_size=None, gpu_memory_utilization=0.9, swap_space=4, kv_cache_dtype='mxint8', num_gpu_blocks_override=None, enable_prefix_caching=None, prefix_caching_hash_algo='builtin', cpu_offload_gb=0, calculate_kv_scales=False, disable_sliding_window=False, use_v2_block_manager=True, seed=None, max_logprobs=20, disable_log_stats=False, quantization='mxfp6', rope_scaling=None, rope_theta=None, hf_token=None, hf_overrides=None, enforce_eager=False, max_seq_len_to_capture=1, tokenizer_pool_size=0, tokenizer_pool_type='ray', tokenizer_pool_extra_config={}, limit_mm_per_prompt={}, mm_processor_kwargs=None, disable_mm_preprocessor_cache=False, enable_lora=None, enable_lora_bias=False, max_loras=1, max_lora_rank=16, lora_extra_vocab_size=256, lora_dtype='auto', long_lora_scaling_factors=None, max_cpu_loras=None, fully_sharded_loras=False, enable_prompt_adapter=None, max_prompt_adapters=1, max_prompt_adapter_token=0, device='qaic', speculative_config=None, ignore_patterns=[], served_model_name=None, qlora_adapter_name_or_path=None, show_hidden_metrics_for_version=None, otlp_traces_endpoint=None, collect_detailed_traces=None, disable_async_output_proc=False, max_num_batched_tokens=None, max_num_seqs=1, max_num_partial_prefills=1, max_long_partial_prefills=1, long_prefill_token_threshold=0, num_lookahead_slots=0, scheduler_delay_factor=0.0, preemption_mode=None, num_scheduler_steps=1, multi_step_stream_outputs=True, scheduling_policy='fcfs', enable_chunked_prefill=None, disable_chunked_mm_input=False, scheduler_cls='vllm.core.scheduler.Scheduler', override_neuron_config=None, override_pooler_config=None, compilation_config=None, kv_transfer_config=None, worker_cls='auto', worker_extension_cls='', generation_config='auto', override_generation_config=None, enable_sleep_mode=False, additional_config=None, enable_reasoning=False, disable_cascade_attn=False, override_qaic_config={'qpc_path': '/root/qpc/qpc'}, device_group=[0, 1], disable_log_requests=False, max_log_len=None, disable_fastapi_docs=False, enable_prompt_tokens_details=False, enable_server_load_tracking=False, dispatch_function=<function ServeSubcommand.cmd at 0x7416f976a710>) config.json: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████| 963/963 [00:00<00:00, 6.38MB/s] INFO 01-15 17:46:34 [config.py:728] This model supports multiple tasks: {'score', 'generate', 'classify', 'embed', 'reward'}. Defaulting to 'generate'. WARNING 01-15 17:46:34 [arg_utils.py:1711] --kv-cache-dtype is not supported by the V1 Engine. Falling back to V0. INFO 01-15 17:46:34 [config.py:1415] Using fp8 data type to store kv cache. It reduces the GPU memory footprint and boosts the performance. Meanwhile, it may cause accuracy drop without a proper scaling factor INFO 01-15 17:46:34 [config.py:1820] Disabled the custom all-reduce kernel because it is not supported on current platform. config_1m.json: 77.3kB [00:00, 163MB/s] generation_config.json: 100%|██████████████████████████████████████████████████████████████████████████████████████| 239/239 [00:00<00:00, 2.47MB/s] model.safetensors.index.json: 1.70MB [00:00, 57.5MB/s] tokenizer.json: 100%|██████████████████████████████████████████████████████████████████████████████████████████| 11.4M/11.4M [00:02<00:00, 5.23MB/s] tokenizer_config.json: 9.38kB [00:00, 41.9MB/s] vocab.json: 2.78MB [00:00, 25.4MB/s] INFO 01-15 17:46:38 [api_server.py:246] Started engine process with PID 51 merges.txt: 1.67MB [00:00, 11.8MB/s] loading /opt/qti-aic/dev/lib/x86_64/libQAic.so INFO 01-15 17:46:40 [__init__.py:269] Automatically detected platform qaic. INFO 01-15 17:46:41 [llm_engine.py:247] Initializing a V0 LLM engine (v0.8.6.dev0+gba41cc90e.d20251229) with config: model='Qwen/Qwen3-30B-A3B-Instruct-2507', speculative_config=None, tokenizer='Qwen/Qwen3-30B-A3B-Instruct-2507', skip_tokenizer_init=False, tokenizer_mode=auto, revision=None, override_neuron_config=None, tokenizer_revision=None, trust_remote_code=False, dtype=torch.bfloat16, max_seq_len=4096, download_dir=None, load_format=auto, tensor_parallel_size=1, pipeline_parallel_size=1, disable_custom_all_reduce=True, quantization=mxfp6, enforce_eager=False, kv_cache_dtype=mxint8, device_config=cpu, decoding_config=DecodingConfig(guided_decoding_backend='auto', reasoning_backend=None), observability_config=ObservabilityConfig(show_hidden_metrics=False, otlp_traces_endpoint=None, collect_model_forward_time=False, collect_model_execute_time=False), seed=None, served_model_name=Qwen/Qwen3-30B-A3B-Instruct-2507, num_scheduler_steps=1, multi_step_stream_outputs=True, enable_prefix_caching=None, chunked_prefill_enabled=False, use_async_output_proc=False, disable_mm_preprocessor_cache=False, mm_processor_kwargs=None, pooler_config=None, compilation_config={"splitting_ops":[],"compile_sizes":[],"cudagraph_capture_sizes":[1],"max_capture_size":1}, use_cached_outputs=True, WARNING 01-15 17:46:42 [qaic.py:100] Pin memory is not supported on Qaic. WARNING 01-15 17:46:42 [registry.py:217] Model class <class 'vllm.model_executor.models.mllama.MllamaForConditionalGeneration'> already has a multi-modal processor registered to <vllm.multimodal.registry.MultiModalRegistry object at 0x7f2ffb2ddc90>. It is overwritten by the new one. WARNING 01-15 17:46:42 [registry.py:217] Model class <class 'vllm.model_executor.models.mllama4.Llama4ForConditionalGeneration'> already has a multi-modal processor registered to <vllm.multimodal.registry.MultiModalRegistry object at 0x7f2ffb2ddc90>. It is overwritten by the new one. WARNING 01-15 17:46:42 [qaic_worker.py:102] Reducing Torch parallelism from 8 threads to 8 to avoid unnecessary CPU contention. Set VLLM_QAIC_MAX_CPU_THREADS to tune this value as needed. INFO 01-15 17:46:42 [qaic_worker.py:87] Setting RLIMIT_STACK to 16.0MB. INFO 01-15 17:46:44 [parallel_state.py:1004] rank 0 in world size 1 is assigned as DP rank 0, PP rank 0, TP rank 0 loading /opt/qti-aic/dev/lib/x86_64/libQAic.so INFO 01-15 17:46:44 [executor_base.py:112] # qaic blocks: 1, # CPU blocks: 0 INFO 01-15 17:46:44 [executor_base.py:117] Maximum concurrency for 4096 tokens per request: 1.00x {'prefill_seq_len': 1, 'ctx_len': 4096, 'batch_size': 1, 'full_batch_size': 1, 'device_group': [0, 1], 'num_devices': 2, 'num_cores': 16, 'mxfp6_matmul': True, 'mxint8_kv_cache': True, 'aic_enable_depth_first': True, 'prefill_only': None, 'compile_only': False} INFO 01-15 17:46:44 [qaic.py:959] Using qpc:-/root/qpc/qpc Stages: 1 INFO 01-15 17:46:44 [qserve_model_runner.py:66] Loading QPC... INFO 01-15 17:46:44 [qserve_model_runner.py:67] This may take some time, please don't press CTRL-C during this phase... INFO 01-15 17:46:52 [qserve_model_runner.py:88] Successfully loaded QPC in 7.791425864999837 secs WARNING 01-15 17:46:52 [qserve_model_runner.py:122] User entered `include_sampler`=True. But the provided QPC is not compiled to run sampling on the QAIC device. Falling back to the PyTorch backend. INFO 01-15 17:46:52 [qserve_model_runner.py:162] Warming-up with Dummy run... INFO 01-15 17:46:52 [qserve_model_runner.py:178] Successfully finished Dummy run in 0.04556767500025671 secs INFO 01-15 17:46:52 [llm_engine.py:444] init engine (profile, create kv cache, warmup model) took 7.86 seconds WARNING 01-15 17:46:53 [config.py:1251] Default sampling parameters have been overridden by the model's Hugging Face generation config recommended from the model creator. If this is not intended, please relaunch vLLM instance with `--generation-config vllm`. INFO 01-15 17:46:53 [serving_chat.py:124] Using default chat sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8} INFO 01-15 17:46:53 [serving_completion.py:61] Using default completion sampling params from model: {'temperature': 0.7, 'top_k': 20, 'top_p': 0.8} INFO 01-15 17:46:53 [api_server.py:1090] Starting vLLM API server on http://0.0.0.0:8000 INFO 01-15 17:46:53 [launcher.py:28] Available routes are: INFO 01-15 17:46:53 [launcher.py:36] Route: /openapi.json, Methods: GET, HEAD INFO 01-15 17:46:53 [launcher.py:36] Route: /docs, Methods: GET, HEAD INFO 01-15 17:46:53 [launcher.py:36] Route: /docs/oauth2-redirect, Methods: GET, HEAD INFO 01-15 17:46:53 [launcher.py:36] Route: /redoc, Methods: GET, HEAD INFO 01-15 17:46:53 [launcher.py:36] Route: /health, Methods: GET INFO 01-15 17:46:53 [launcher.py:36] Route: /load, Methods: GET INFO 01-15 17:46:53 [launcher.py:36] Route: /ping, Methods: POST, GET INFO 01-15 17:46:53 [launcher.py:36] Route: /tokenize, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /detokenize, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/models, Methods: GET INFO 01-15 17:46:53 [launcher.py:36] Route: /version, Methods: GET INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/chat/completions, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/completions, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/embeddings, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /pooling, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /score, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/score, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/audio/transcriptions, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /rerank, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v1/rerank, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /v2/rerank, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /invocations, Methods: POST INFO 01-15 17:46:53 [launcher.py:36] Route: /metrics, Methods: GET INFO: Started server process [1] INFO: Waiting for application startup. INFO: Application startup complete.
Пример выходных данных сравнительного анализа для qaic-bench.
Вывод проб для стенда для контроля качестваdell@dell:~$ docker exec -it qaic-bench \ /opt/vllm-env/bin/vllm bench serve \ --model Qwen/Qwen3-30B-A3B-Instruct-2507 \ --num-prompts 25 \ --max-concurrency 1 \ --random-input-len 256 \ --random-output-len 256 loading /opt/qti-aic/dev/lib/x86_64/libQAic.so INFO 01-15 17:47:44 [__init__.py:269] Automatically detected platform qaic. Namespace(subparser='bench', bench_type='serve', dispatch_function=<function BenchmarkServingSubcommand.cmd at 0x71abbd45e9e0>, endpoint_type='openai-comp', label=None, base_url=None, host='127.0.0.1', port=8000, endpoint='/v1/completions', dataset_name='random', max_concurrency=1, model='Qwen/Qwen3-30B-A3B-Instruct-2507', tokenizer=None, best_of=1, use_beam_search=False, num_prompts=25, logprobs=None, request_rate=inf, burstiness=1.0, seed=0, trust_remote_code=False, disable_tqdm=False, profile=False, save_result=False, metadata=None, result_dir=None, result_filename=None, ignore_eos=False, percentile_metrics='ttft,tpot,itl', metric_percentiles='99', goodput=None, random_input_len=256, random_output_len=256, random_range_ratio=1.0, random_prefix_len=0, tokenizer_mode='auto', served_model_name=None, lora_modules=None) Starting initial single prompt test run... Initial test run completed. Starting main benchmark run... Traffic request rate: inf Burstiness factor: 1.0 (Poisson process) Maximum request concurrency: 1 100%|████████████████████████████████████████████████████████████████████████████████████| 25/25 [05:00<00:00, 12.02s/it] ============ Serving Benchmark Result ============ Successful requests: 25 Benchmark duration (s): 300.53 Total input tokens: 6400 Total generated tokens: 6400 Request throughput (req/s): 0.08 Output token throughput (tok/s): 21.30 Total Token throughput (tok/s): 42.59 ---------------Time to First Token---------------- Mean TTFT (ms): 5915.88 Median TTFT (ms): 5803.64 P99 TTFT (ms): 7153.97 -----Time per Output Token (excl. 1st token)------ Mean TPOT (ms): 23.94 Median TPOT (ms): 23.82 P99 TPOT (ms): 25.18 ---------------Inter-token Latency---------------- Mean ITL (ms): 23.94 Median ITL (ms): 23.78 P99 ITL (ms): 25.77 ================================================== dell@dell:~$
Чтобы рассчитать результаты TPS (токенов в секунду) для токенов, сгенерированных на выходе, используйте 1000 ÷ среднее значение TPOT (23,94 сверху) = 41,8 TPS.
- Скачайте предварительно собранный QPC Qwen3-30B-A3B-Instruct-2507.
Affected Products
Dell Pro Max 16 Plus MB16250Article Properties
Article Number: 000446730
Article Type: How To
Last Modified: 24 May 2026
Version: 5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.