Buckets:
| # Metal Performans Gölgelleyicileri (MPS) | |
| > [!TIP] | |
| > [Pull Request](https://github.com/huggingface/diffusers/compare) açarak bu rozeti eksik olan pipeline'lara eklemekten çekinmeyin. rozetli pipeline'lar, Apple silikonlu cihazlarda MPS arka ucundan yararlanarak daha hızlı çıkarım yapabildiğini gösterir. | |
| 🤗 Diffusers, MacOS cihazlarındaki GPU'yu kullanmak için Metal çerçevesini kullanan PyTorch [`mps`](https://pytorch.org/docs/stable/notes/mps.html) cihazı ile Apple silikon (M1/M2 çipleri) ile uyumludur. Aşağıdaki gereksinimleri karşılamış olmanız gerekir: | |
| - Apple silikon (M1/M2) donanımlı bir macOS bilgisayar | |
| - macOS 12.6 veya üzeri (13.0 veya üzeri önerilir) | |
| - arm64 sürümü Python | |
| - [PyTorch 2.0](https://pytorch.org/get-started/locally/) (önerilen) veya 1.13 (`mps` için desteklenen en düşük sürüm) | |
| `mps` arka ucu, Stable Diffusion hattını M1 veya M2 cihazınıza taşımak için PyTorch'un `.to()` arayüzünü kullanır: | |
| ```python | |
| from diffusers import DiffusionPipeline | |
| pipe = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| pipe = pipe.to("mps") | |
| # Recommended if your computer has < 64 GB of RAM | |
| pipe.enable_attention_slicing() | |
| prompt = "a photo of an astronaut riding a horse on mars" | |
| image = pipe(prompt).images[0] | |
| image | |
| ``` | |
| > [!WARNING] | |
| > PyTorch [mps](https://pytorch.org/docs/stable/notes/mps.html) arka ucu, `2**32`'den büyük NDArray boyutlarını desteklemez. Bu sorunla karşılaşırsanız, inceleyebilmemiz için bir [Issue](https://github.com/huggingface/diffusers/issues/new/choose) açmanızı rica ederiz. | |
| **PyTorch 1.13** kullanıyorsanız, hattı (pipeline) bir kez daha ek geçişle "hazırlamanız" (prime) gerekir. Bu, ilk çıkarım (inference) geçişinin sonraki geçişlerden biraz farklı sonuçlar üretmesi sorununa geçici bir çözümdür. Bu geçişi yalnızca bir kez yapmanız yeterlidir ve tek bir çıkarım adımından sonra sonucu atabilirsiniz. | |
| ```diff | |
| from diffusers import DiffusionPipeline | |
| pipe = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5").to("mps") | |
| pipe.enable_attention_slicing() | |
| prompt = "a photo of an astronaut riding a horse on mars" | |
| # First-time "warmup" pass if PyTorch version is 1.13 | |
| + _ = pipe(prompt, num_inference_steps=1) | |
| # Results match those from the CPU device after the warmup pass. | |
| image = pipe(prompt).images[0] | |
| ``` | |
| ## Sorun Giderme | |
| Bu bölüm, `mps` arka ucunu kullanırken karşılaşılan bazı yaygın sorunları ve bunların nasıl çözüleceğini listeler. | |
| ### Attention dilimleme | |
| M1/M2 performansı bellek baskısına karşı çok hassastır. Bu durum oluştuğunda sistem, ihtiyaç duyduğunda otomatik olarak takas (swap) yapar ve bu da performansı önemli ölçüde düşürür. | |
| Bunun önüne geçmek için, çıkarım sırasında bellek baskısını azaltmak ve takaslamayı (swapping) önlemek amacıyla *dikkat dilimleme* (attention slicing) kullanmanızı öneririz. Bilgisayarınızın 64 GB'tan az sistem belleği olması veya 512×512 pikselden büyük, standart olmayan çözünürlüklerde görsel üretmeniz durumunda bu özellikle önemlidir. Hattınızda (pipeline) [enable_attention_slicing()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.enable_attention_slicing) fonksiyonunu çağırın: | |
| ```py | |
| from diffusers import DiffusionPipeline | |
| import torch | |
| pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", dtype=torch.float16, variant="fp16", use_safetensors=True).to("mps") | |
| pipeline.enable_attention_slicing() | |
| ``` | |
| Attention slicing, maliyetli attention işlemini tek seferde yerine birden fazla adımda gerçekleştirir. Evrensel belleğe sahip olmayan bilgisayarlarda genellikle performansı ~%20 oranında iyileştirir; ancak 64 GB veya daha fazla RAM'a sahip olmadıkça, çoğu Apple silikonlu bilgisayarda *daha iyi performans* gözlemledik. | |
| ### Toplu çıkarım | |
| Bir partide birden çok istek üretmek çökmeye veya güvenilir şekilde çalışmamasına neden olabilir. Bu durumda, partileme yerine yineleme yapmayı deneyin. | |
Xet Storage Details
- Size:
- 4.15 kB
- Xet hash:
- 46465984b25aff742107c04b5ffa981a236c5ff4ccbd7b02a3ed9f8378d32025
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.