ONNX Runtime მნიშვნელოვნად აჩქარებს SD Turbo-სა და SDXL Turbo-ს NVIDIA GPU-ებზე
SD Turbo და SDXL Turbo, Stable Diffusion-ის სწრაფი, გენერაციული ტექსტიდან გამოსახულების მოდელები, რომლებსაც შეუძლიათ გამოსაყენებელი სურათების გენერირება ერთ ნაბიჯში, ახლა ONNX Runtime-ის მეშვეობით კიდევ უფრო სწრაფი ხდება. ONNX Runtime-ის CUDA და TensorRT შესრულების პროვაიდერებში ოპტიმიზაციებმა გამოიწვია გამტარუნარიანობის 229%-მდე ზრდა SDXL Turbo-სთვის და 120%-მდე SD Turbo-სთვის NVIDIA GPU-ებზე, რაც მნიშვნელოვნად აღემატება PyTorch-ის მაჩვენებლებს. ეს გაუმჯობესება, გარდა შესრულების უპირატესობებისა
SD Turbo და SDXL Turbo არის ორი სწრაფი გენერაციული ტექსტიდან გამოსახულების მოდელი, რომლებსაც შეუძლიათ გამოსაყენებელი სურათების გენერირება სულ მცირე ერთ ნაბიჯში, რაც მნიშვნელოვანი გაუმჯობესებაა წინა Stable Diffusion მოდელებისთვის ხშირად საჭირო 30-ზე მეტ ნაბიჯთან შედარებით. SD Turbo არის Stable Diffusion 2.1-ის დისტილირებული ვერსია, ხოლო SDXL Turbo არის SDXL 1.0-ის დისტილირებული ვერსია. ჩვენ ადრე ვაჩვენეთ, თუ როგორ უნდა დააჩქაროთ Stable Diffusion ინფერენცია ONNX Runtime-ით. ONNX Runtime არა მხოლოდ უზრუნველყოფს შესრულების უპირატესობებს SD Turbo-სა და SDXL Turbo-სთან ერთად გამოყენებისას, არამედ მოდელებს ხელმისაწვდომს ხდის Python-ის გარდა სხვა ენებზეც, როგორიცაა C# და Java. ამ პოსტში ჩვენ წარმოვადგენთ ოპტიმიზაციებს ONNX Runtime CUDA-სა და TensorRT-ის შესრულების პროვაიდერებში, რომლებიც მნიშვნელოვნად აჩქარებენ SD Turbo-სა და SDXL Turbo-ს ინფერენციას NVIDIA GPU-ებზე.
ONNX Runtime-მა აჯობა PyTorch-ს ყველა (პარტიის ზომა, ნაბიჯების რაოდენობა) კომბინაციისთვის, გამტარუნარიანობის ზრდით SDXL Turbo მოდელისთვის 229%-მდე და SD Turbo მოდელისთვის 120%-მდე. ONNX Runtime CUDA-ს განსაკუთრებით კარგი შესრულება აქვს დინამიური ფორმისთვის, მაგრამ ასევე აჩვენებს შესამჩნევ გაუმჯობესებას PyTorch-თან შედარებით სტატიკური ფორმისთვის. ინფერენციის დასაჩქარებლად ONNX Runtime CUDA შესრულების პროვაიდერის გამოყენებით, შედით ჩვენს ოპტიმიზებულ SD Turbo-სა და SDXL Turbo ვერსიებზე Hugging Face-ზე. მოდელები გენერირებულია Olive-ის მიერ, რომელიც არის მარტივი გამოსაყენებელი მოდელის ოპტიმიზაციის ინსტრუმენტი აპარატურის გათვალისწინებით. გაითვალისწინეთ, რომ საუკეთესო შესრულებისთვის საჭიროა fp16 VAE-ის ჩართვა ბრძანების ხაზის მეშვეობით, როგორც ნაჩვენებია გაზიარებულ ოპტიმიზებულ ვერსიებში. SD და SDXL კონვეიერების Hugging Face-ზე განთავსებული ONNX ფაილებით გასაშვებად იხილეთ SD Turbo-ს გამოყენების მაგალითი და SDXL Turbo-ს გამოყენების მაგალითი. ინფერენციის დასაჩქარებლად ONNX Runtime TensorRT შესრულების პროვაიდერის გამოყენების ნაცვლად, მიჰყევით აქ მოცემულ ინსტრუქციებს.
ქვემოთ მოცემულია SDXL Turbo მოდელის გამოყენებით ტექსტური მითითებით სურათის გენერირების მაგალითი:
**ნახ. 1.** პატარა საყვარელი გრემლინი ქურთუკში – სურათი, გენერირებული ტექსტური მითითებით SDXL Turbo-ს გამოყენებით.
გაითვალისწინეთ, რომ მაგალითის სურათი გენერირდა 4 ნაბიჯში, რაც აჩვენებს SD Turbo-სა და SDXL Turbo-ს შესაძლებლობას, გენერაცია მოახდინონ გამოსაყენებელი სურათების უფრო ნაკლებ ნაბიჯში, ვიდრე წინა Stable Diffusion მოდელები. Stable Diffusion მოდელების მოსახერხებელი გზით გამოსაცდელად იხილეთ ჩვენი ONNX Runtime გაფართოება Automatic1111-ის SD WebUI-სთვის. ეს გაფართოება საშუალებას იძლევა Stable Diffusion UNet მოდელის ოპტიმიზებულ შესრულებას NVIDIA GPU-ებზე და იყენებს ONNX Runtime CUDA შესრულების პროვაიდერს ინფერენციის გასაშვებად Olive-ით ოპტიმიზირებული მოდელების წინააღმდეგ. ამ დროისთვის, გაფართოება ოპტიმიზირებულია მხოლოდ Stable Diffusion 1.5-ისთვის. SD Turbo და SDXL Turbo მოდელები ასევე შეიძლება გამოყენებულ იქნას, მაგრამ შესრულების ოპტიმიზაციები ჯერ კიდევ მიმდინარეობს.
ONNX Runtime-ის cross-platform, შესრულების და გამოყენებადობის უპირატესობების გამოყენებით, საზოგადოების წევრებმა ასევე შეიტანეს საკუთარი წვლილი ნიმუშებითა და UI ინსტრუმენტებით Stable Diffusion-ის ONNX Runtime-თან ერთად გამოყენებით. ეს საზოგადოებრივი წვლილი მოიცავს OnnxStack-ს, .NET ბიბლიოთეკას, რომელიც ეფუძნება ჩვენს წინა C# გაკვეთილს, რათა მომხმარებლებს მიაწოდოს მრავალფეროვანი შესაძლებლობები მრავალი სხვადასხვა Stable Diffusion მოდელისთვის C#-ისა და ONNX Runtime-ის გამოყენებით ინფერენციის შესრულებისას. გარდა ამისა, Oracle-მა გამოუშვა Stable Diffusion-ის ნიმუში Java-ით, რომელიც ინფერენციას აწარმოებს ONNX Runtime-ის თავზე. ეს პროექტი ასევე ეფუძნება ჩვენს C# გაკვეთილს.
ჩვენ ჩავატარეთ SD Turbo და SDXL Turbo მოდელების ბენჩმარკინგი Standard_ND96amsr_A100_v4 VM-ით, A100-SXM4-80GB-ის გამოყენებით და Lenovo Desktop-ით RTX-4090 GPU-ით (WSL Ubuntu 20.04) 512x512 გარჩევადობის სურათების გენერირებისთვის LCM Scheduler-ისა და fp16 მოდელების გამოყენებით. შედეგები გაიზომა ამ სპეციფიკაციების გამოყენებით: ამ შედეგების გასამეორებლად, ჩვენ გირჩევთ გამოიყენოთ ინსტრუქციები, რომლებიც მოცემულია 'გამოყენების მაგალითის' განყოფილებაში. ვინაიდან SDXL Turbo-ს ორიგინალი VAE ვერ მუშაობს fp16 სიზუსტით, SDXL Turbo-ს ტესტირებისას გამოვიყენეთ sdxl-vae-fp16-fix. არსებობს მცირე განსხვავებები მის გამომავალსა და ორიგინალური VAE-ის გამომავალს შორის, მაგრამ დეკოდირებული სურათები საკმარისად ახლოსაა უმეტესი მიზნებისთვის. PyTorch კონვეიერმა სტატიკური ფორმისთვის გამოიყენა channel-last მეხსიერების ფორმატი და torch.compile reduce-overhead რეჟიმში.
შემდეგი დიაგრამები ასახავს გამტარუნარიანობას (სურათები წამში) vs. სხვადასხვა (პარტიის ზომა, ნაბიჯების რაოდენობა) კომბინაციები სხვადასხვა ფრეიმვორკისთვის. აღსანიშნავია, რომ თითოეული ზოლის ზემოთ მოცემული წარწერა მიუთითებს აჩქარების პროცენტს Torch Compile-თან შედარებით – მაგალითად, პირველ დიაგრამაზე, ORT_TRT (სტატიკური) 31%-ით უფრო სწრაფია ვიდრე Torch (კომპილაცია) (პარტია, ნაბიჯები) კომბინაციისთვის (4, 1). ჩვენ ავირჩიეთ 1 და 4 ნაბიჯი, რადგან SD Turbo-სა და SDXL Turbo-ს შეუძლიათ გამოსაყენებელი სურათების გენერირება სულ მცირე 1 ნაბიჯში, მაგრამ ჩვეულებრივ საუკეთესო ხარისხის სურათებს აწარმოებენ 3-5 ნაბიჯში. ქვემოთ მოცემული გრაფიკები ასახავს გამტარუნარიანობას (სურათები წამში) SDXL Turbo მოდელისთვის როგორც სტატიკური, ასევე დინამიური ფორმით. შედეგები შეგროვდა A100-SXM4-80GB GPU-ზე სხვადასხვა (პარტიის ზომა, ნაბიჯების რაოდენობა) კომბინაციებისთვის. დინამიური ფორმისთვის, TensorRT ძრავა მხარს უჭერს პარტიის ზომას 1-დან 8-მდე და სურათის ზომას 512x512-დან 768x768-მდე, მაგრამ ოპტიმიზირებულია პარტიის ზომისთვის 1.
თეგები:
#ხელოვნური ინტელექტი
#ოპტიმიზაცია
#ai მოდელები
#stable diffusion
#onnx runtime
#sd turbo
#sdxl turbo
#nvidia gpu
#ტექსტი-სურათად
წყარო: huggingface.co
AI-ით გადამუშავებული
მსგავსი სტატიები
ტექნოლოგიები
Honor Magic V6: უთხელესი დასაკეცი ტელეფონი? პირველი შთაბეჭდილებები
ტექნოლოგიები
Honor Magic V6: ყველაზე თხელი დასაკეცი სმარტფონი და მისი შთამბეჭდავი შესაძლებლობები
ტექნოლოგიები