Konwersja filmów do 4K za pomoca AI: CPU czy GPU?

0

Cześć,
ostatnio zobaczyłem, że kilka pamiątek rodzinnych mam w jakości SD/HD - pomyślałem, że może warto by spróbować i skorzystać z AI w celu podbicia rozdzielczości. Oprogramowanie z którego korzystam to https://github.com/k4yt3x/video2x

Ciekawi mnie jednak następująca kwestia:

Jak wiadomo możemy enkodować za pomocą GPU lub CPU - ale jak porównać wydajność obu tych rzeczy?
Mam Ryzen 3900x (także dosyć mocny, nawet jak na obecne czasy) oraz GeForce'a 1070 TI (czyli obecnie low-end).

Jak można w takich (inne też mile widziane) zastosowaniach porównać co mam mocniejsze? Czy istnieje jakiś przelicznik moc obliczeniowej GPU do CPU?

0

przecież to wszystko to machine learning -> czytaj będzie działało szybciej na gpu czy dedykowanym sprzeie do obliczeń jak TPU.
Zkaładam oczywiście że wygenerowane klatki trzeba tez później zakodować ale to osobna sprawa.
poza tym to zależy bo działające na CPU stosy ML moga wykorzysytwać jakieś rozszerzenia jak AVX2, jak twój procek tego nie obsługuje(bądź stosu nie zbudowan oz tymi instrukcjami) to będzie jeszcze wolniej. żadnych przeliczników nie znam.

0

A nie możesz po prostu przekonwertować jednego filmu na dwa sposoby i porównać czasy? GPU raczej na pewno będzie mocniejszy, masz kilka tysięcy prostszych rdzeni, kontra zaledwie paręnaście rdzeni na procesorze.

Poza tym - warto się tym bawić? Są playery które podbijają rozdzielczość od razu podczas odtwarzania, jaki sens marnować miejsce na dysku na dane które można automatycznie generować w locie

0

Miejsce na dane to nie problem, dodatkowo będę przechowywał i tak obie kopie (oryginał + upscaled).

Celem jest min. przekazanie filmu nagranego na bluray, a wątpie by odtwarzacze stacjonarne/konsole ps4/ps5 potrafiły robić taką konwersję w locie.
Ok, spróbuje sobie pomierzyć te czasy - aczkolwiek do tej pory trwało to zawsze wolno, a czasów nie mierzyłem. Przygotuje sobie mniejsze sample.

No i właśnie o to mi chodzi - doświadczenie mówi że GPU szybsze, ale brakuje mi tu teorii. Pojawiają się pytania:

  • ile lat minie zanim CPU dogonią moją kartę z 2017 roku?
  • czy można jakkolwiek przeliczyć moje obecne CUDA (ten 1070ti ma 2432 takie rdzenie) do rdzeni CPU (12 core/24 threads)?
1
axelbest napisał(a):
  • ile lat minie zanim CPU dogonią moją kartę z 2017 roku?
  • czy można jakkolwiek przeliczyć moje obecne CUDA (ten 1070ti ma 2432 takie rdzenie) do rdzeni CPU (12 core/24 threads)?

CPU biegną w inną stronę niż GPU, więc jest spora szansa, że nigdy nie dogonią twojej karty z 2017 roku.
Rdzeń CPU jest czymś innym niż rdzeń GPU, i jeśli będziesz chciał wykonywać tysiące względnie prostych operacji równolegle to możliwe jest, że twoje GPU nigdy nie zostanie prześcignięte przez procesory w obecnej architekturze. Być może procesory kwantowe sprawę ogarną, ale trudno tutaj wyrokować.

1
axelbest napisał(a):
  • ile lat minie zanim CPU dogonią moją kartę z 2017 roku?

Prawdopodobnie nigdy nie dogonią, tak samo jak GPU nigdy nie dogoni CPU, wszystko zależy od przypadku użycia. GPU jest bardzo dobre w operacjach matematycznych, zwłaszcza dających się przedstawiać na macierzach, pure funkcjach bez skutków ubocznych. CPU służy w zasadzie do wszystkiego innego, musi synchronizować pamięć z innymi rdzeniami, obsługiwać wiele aplikacji na tych samych rdzeniach, przełączać się między nimi, operować na I/O itp

  • czy można jakkolwiek przeliczyć moje obecne CUDA (ten 1070ti ma 2432 takie rdzenie) do rdzeni CPU (12 core/24 threads)?

Nie, bo to zależy od konkretnych operacji, w perfekcyjnym przypadku GPU byłby 2432 / 12 razy szybszy przy jednakowym taktowaniu rdzenia i pamięci, ale taktowanie jest znacznie mniejsze a lista operacji wykonywanych w jednym takcie zegara inna; myślę że możesz śmiało założyć że GPU nie będzie więcej niż 100x szybszy. A ile w rzeczywistości to musiałbyś zmierzyć wykonując te same operacje na GPU i CPU i porównując czasy. Zaledwie 6 krotne przyspieszenie to 10 minut czekania zamiast godziny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1