•最先进的服务吞吐量
•通过PagedAttention高效管理注意力键和值内存
•连续批处理传入请求
•使用 CUDA/HIP 图快速模型执行
•量化:GPTQ[1]、AWQ[2]、SqueezeLLM[3]、FP8 KV 缓存
•优化的 CUDA 内核
•与流行的 HuggingFace 模型无缝集成
•通过各种解码算法提供高吞吐量服务,包括并行采样、波束搜索等
•支持分布式推理的张量并行性
•支持流式输出
•OpenAI 兼容的 API 服务器
•支持 NVIDIA GPU 和 AMD GPU
•(实验性) 前缀缓存支持
•(实验性) 多洛拉支持
1.GPU 架构:T4 基于 NVIDIA 的 Ampere 架构,这是继 Turing 架构之后的新一代 GPU 架构,专为 AI 和机器学习工作负载优化。
2.Tensor Cores:T4 包含 Tensor Cores,这些是专门为深度学习矩阵运算设计的处理单元,能够提供更高的计算效率和性能。
3.内存:T4 GPU 拥有 16 GB 的 GDDR6 显存,这对于处理大型模型和数据集来说是非常充足的。
4.计算能力:T4 GPU 提供高达 318 GFLOPS 的单精度浮点运算能力,以及 60 GFLOPS 的半精度(FP16)运算能力,这使得它能够快速执行复杂的数学运算。
5.多精度计算:除了 FP32 和 FP16,T4 还支持 INT8 和 INT4 精度计算,这有助于在保持性能的同时减少模型的内存占用和提高推理速度。
6.软件兼容性:T4 GPU 支持广泛的深度学习框架和库,如 TensorFlow、PyTorch、Keras 等,这意味着用户可以在他们选择的工具上无缝地使用 T4 GPU。
7.易于访问:在 Google Colab 中,用户可以通过简单的配置更改来访问 T4 GPU,无需复杂的设置或额外的硬件投资。
8.成本效益:虽然 T4 GPU 是一种高端计算资源,但 Google Colab 提供的免费和付费版本都允许用户以合理的成本使用这些 GPU,这对于学生、研究人员和开发者来说是一个很大的优势。
•NVIDIA GPU 的详细信息
!nvidia-smi
nvidia-smi是 NVIDIA 提供的一个命令行工具,用于监控和管理 NVIDIA GPU 设备。当你运行nvidia-smi命令时,它会返回一系列关于系统中所有 NVIDIA GPU 的详细信息,
1.
• CUDA 版本:系统中安装的 CUDA 版本。
•驱动版本:GPU 驱动的版本。
•总显存:系统中所有 GPU 的总显存。
•其他系统级别的信息,如 CPU 使用率、内存使用情况等。
•显示每个进程对 GPU 显存的使用情况,包括进程 ID、已使用的显存量等。
•GPU 编号:标识每个 GPU 的序号。
•Name:显示 GPU 的型号。
•Persistence-M:持续模式状态,显示是否开启,开启时 GPU 会保持唤醒状态以快速响应新任务。
•Fan:风扇转速,显示为百分比,范围从 0 到 100%。
•Temp:GPU 温度,单位是摄氏度。
•Perf:性能状态,从 P0 到 P12,P0 表示最大性能,P12 表示最小性能。
•Pwr:功耗,显示当前功耗和最大功耗。
•Memory Usage:显存使用情况,包括总显存、已使用显存和剩余显存。
•Bus-Id:GPU 总线的标识,格式为 domain?device.function。
•Disp.A:显示 GPU 的显示输出是否激活。
•Volatile GPU-Util:GPU 利用率,表示 GPU 正在执行的任务的负载百分比。
•Uncorr. ECC:错误检查与纠正状态,与 GPU 的 ECC 内存相关。
•Compute M:计算模式,显示 GPU 是处于默认模式还是特定计算模式。
1.GPU 状态概览:
2.进程信息:
3.系统信息:
•更多内存信息
#memoryfootprintsupportlibraries/code
!ln-sf/opt/bin/nvidia-smi/usr/bin/nvidia-smi
!pipinstall-qgputil
importpsutil
importhumanize
importos
importGPUtilasGPU
GPUs=GPU.getGPUs()
#XXX
nlyoneGPUonColabandisn’tguaranteed
gpu=GPUs[0]
defprintm():
process=psutil.Process(os.getpid())
virtual_memory=humanize.naturalsize(psutil.virtual_memory().available)
memory_info=humanize.naturalsize(process.memory_info().rss)
memoryFree=gpu.memoryFree
memoryUsed=gpu.memoryUsed
memoryUtil=gpu.memoryUtil*100
memoryTotal=gpu.memoryTotal
print(f"GenRAMFree:{virtual_memory}|Procsize:{memory_info}")
print("GPURAMFree:{0:.0f}MB|Used:{1:.0f}MB|Util{2:3.0f}%|Total{3:.0f}MB".\
format(memoryFree,memoryUsed,memoryUtil*100,memoryTotal))
printm()返回
Preparingmetadata(setup.py)...done
Buildingwheelforgputil(setup.py)...done
GenRAMFree:12.4GB|Procsize:98.9MB
GPURAMFree:15101MB|Used:0MB|Util0%|Total15360MB•查看cuda版本信息
!nvcc-V
返回
nvcc:NVIDIA(R)Cudacompilerdriver
Copyright(c)2005-2023NVIDIACorporation
BuiltonTue_Aug_15_22:02:13_PDT_2023
Cudacompilationtools,release12.2,V12.2.140
Buildcuda_12.2.r12.2/compiler.33191640_0根据版本信息,需要从源码安装
%%bash
gitclonehttps://github.com/vllm-project/vllmsrc
cd/content/src
pipinstall-e.#Thismaytake5-10minutes.importtorch
print(torch.version.cuda)%%bash
exportVLLM_USE_MODELSCOPE=TruefromvllmimportLLM,SamplingParams
prompts=[
"Hello,mynameis",
"ThepresidentoftheUnitedStatesis",
"ThecapitalofFranceis",
"ThefutureofAIis",
]
sampling_params=SamplingParams(temperature=0.8,top_p=0.95)
llm=LLM(model="Qwen/Qwen1.5-1.8B-Chat",dtype='half')
outputs=llm.generate(prompts,sampling_params)
#Printtheoutputs.
foroutputinoutputs:
prompt=output.prompt
generated_text=output.outputs[0].text
print(f"Prompt:{prompt!r},Generatedtext:{generated_text!r}")| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |