RVC-GUİ Gpu seçilmiyor

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Winchester
Donator
Katılım
22 Ağu 2019
Mesajlar
310
Çözümler
1
Tepki puanı
17
Ödüller
8
6 HİZMET YILI
Merhabalar bugünlerde çok popüler olan RVC Aİ yapay zekasını test etmek için indirdim fakat farkettim ki sadece CPU seçebiliyorum nvidia kartları direkt gpu olarak başlatıyor cpu da işlem aşırı uzun sürüyor bende AMD kullanıyorum ve bu programı ekran kartım ile çalıştırmak istiyorum github'ta nasıl GPU ile çalıştırabilirim diye araştırdığım da böyle bir yazı çıktı fakat hiç bir şey anlamadım Cuda:0 ı 1 yaptım hala GPU seçemedim Yardımcı olursanız çok sevinirim. Config dosyasındaki kodları komple attım aşşağıya bir şey anlarsanız yazın ben anlamıyorum




Kod:
import argparse
import glob
import sys
import torch
from multiprocessing import cpu_count


class Config:
    def __init__(self):
        self.device = "cuda:0"
        self.is_half = True
        self.n_cpu = 0
        self.gpu_name = None
        self.gpu_mem = None
        (
            self.python_cmd,
            self.listen_port,
            self.iscolab,
            self.noparallel,
            self.noautoopen,
            self.use_gfloat,
            self.paperspace,
        ) = self.arg_parse()
       
        if self.use_gfloat:
            print("Using g_float instead of g_half")
            self.is_half = False
        self.x_pad, self.x_query, self.x_center, self.x_max = self.device_config()

    def arg_parse(self) -> tuple:
        parser = argparse.ArgumentParser()
        parser.add_argument("--port", type=int, default=7865, help="Listen port")
        parser.add_argument(
            "--pycmd", type=str, default="python", help="Python command"
        )
        parser.add_argument("--colab", action="store_true", help="Launch in colab")
        parser.add_argument(
            "--noparallel", action="store_true", help="Disable parallel processing"
        )
        parser.add_argument(
            "--noautoopen",
            action="store_true",
            help="Do not open in browser automatically",
        )
        parser.add_argument( # this argument (if set to false) allows windows users to avoid the "slow_conv2d_cpu not implemented for 'Half'" exception
            "--use_gfloat", action="store_true", help="Will use g_float instead of g_half during voice conversion."
        )
        parser.add_argument( # Fork Feature. Paperspace integration for web UI
            "--paperspace", action="store_true", help="Note that this argument just shares a gradio link for the web UI. Thus can be used on other non-local CLI systems."
        )
        cmd_opts = parser.parse_args()

        cmd_opts.port = cmd_opts.port if 0 <= cmd_opts.port <= 65535 else 7865

        return (
            cmd_opts.pycmd,
            cmd_opts.port,
            cmd_opts.colab,
            cmd_opts.noparallel,
            cmd_opts.noautoopen,
            cmd_opts.use_gfloat,
            cmd_opts.paperspace,
        )

    def device_config(self) -> tuple:
        if torch.cuda.is_available():
            i_device = int(self.device.split(":")[-1])
            self.gpu_name = torch.cuda.get_device_name(i_device)
            if (
                ("16" in self.gpu_name and "V100" not in self.gpu_name.upper())
                or "P40" in self.gpu_name.upper()
                or "1060" in self.gpu_name
                or "1070" in self.gpu_name
                or "1080" in self.gpu_name
            ):
                print("16系/10系显卡和P40强制单精度")
                self.is_half = False
                with open("trainset_preprocess_pipeline_print.py", "r") as f:
                    strr = f.read().replace("3.7", "3.0")
                with open("trainset_preprocess_pipeline_print.py", "w") as f:
                    f.write(strr)
            else:
                self.gpu_name = None
            self.gpu_mem = int(
                torch.cuda.get_device_properties(i_device).total_memory
                / 1024
                / 1024
                / 1024
                + 0.4
            )
            if self.gpu_mem <= 4:
                with open("trainset_preprocess_pipeline_print.py", "r") as f:
                    strr = f.read().replace("3.7", "3.0")
                with open("trainset_preprocess_pipeline_print.py", "w") as f:
                    f.write(strr)
        elif torch.backends.mps.is_available():
            print("No supported Nvidia cards found, using MPS for inference ")
            self.device = "mps"
        else:
            print("No supported Nvidia cards found, using CPU for inference")
            self.device = "cpu"
            if not self.use_gfloat: # Fork Feature: Force g_float (is_half = False) if --use_gfloat arg is used.
                self.is_half = False

        if self.n_cpu == 0:
            self.n_cpu = cpu_count()

        if self.is_half:
            # 6G显存配置
            x_pad = 3
            x_query = 10
            x_center = 60
            x_max = 65
        else:
            # 5G显存配置
            x_pad = 1
            x_query = 6
            x_center = 38
            x_max = 41

        if self.gpu_mem != None and self.gpu_mem <= 4:
            x_pad = 1
            x_query = 5
            x_center = 30
            x_max = 32

        return x_pad, x_query, x_center, x_max
 

Ekli dosyalar

  • varan1.jpg
    varan1.jpg
    8.8 KB · Görüntüleme: 210
  • varan2.jpg
    varan2.jpg
    20.4 KB · Görüntüleme: 233
  • varan3.jpg
    varan3.jpg
    21.5 KB · Görüntüleme: 211
Son düzenleme:
Üye
Katılım
22 Şub 2023
Mesajlar
2
Tepki puanı
1
Yaş
18
3 HİZMET YILI
İlk önce config.py dosyasını açıyoruz. Ardından " self.device = "cpu" " yazan yeri " self.device = "gpu" " olarak değiştiriyoruz. Bu kadar.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst