Podłącz GPU do Raspberry pi

15

Chcę podłączyć GPU GT640 do modelu Raspberry pi B. Wiem, że nie ma bezpośredniego połączenia, a dane transferu są bardzo różne, ale. Czy jest jakaś szansa na podłączenie tego urządzenia, aby skorzystać z mocy obliczeniowej GPU? komunikacja w czasie rzeczywistym nie jest konieczna, ale czy teoretycznie jest to możliwe?

Arturo Veras
źródło
Planuję użyć MCS9990 (PCIe na 4-portowy kontroler hosta USB 2.0), aby stworzyć płytkę łączącą GT640 PCI 3.0 16x z RPi USB 2.0. Myślę, że jedyną trudnością jest sterownik tego układu, ale mam czas, aby go rozwinąć. Jeśli to zaimplementuję, to co z innym oprogramowaniem (sterownikiem CUDA i GForce) będą działały na sterowniku płyty głównej?
Arturo Veras
Znalazłem interfejs, który wykona zadanie. Jest to kontroler urządzeń peryferyjnych PCI Express Gen 2 na USB 3.0 . Posiada jeden port PCI Express Gen 2 x1 i jeden port klienta USB 3.0 SuperSpeed. Wiem, że USB 3.0 obsługuje również USB 2.0: + USB Hi-Speed ​​( USB 2.0 ) 480 Mbit / s + USB SuperSpeed ​​( USB 3.0 ) 5 Gbit / s + Zewnętrzny PCI Express 2.0 × 1 4 Gbit / s + Zewnętrzny PCI Express 3.0 × 16 32 Gbit / s Ograniczę się do portu USB 2.0 Raspberry pi.
Arturo Veras
3
Poważnie sugeruję, abyś nie próbował tego robić
nagyben,
Programowanie sterowników jest bardzo trudne, szczególnie gdy jest to coś, czego nigdy wcześniej nie robiono
nagyben
Głównym procesorem Raspberry Pi jest już procesor graficzny oparty na VideoCore IV.
Erkin Alp Güney

Odpowiedzi:

3

Prawie niemożliwe.

lepiej zamiast tego spróbuj użyć taniego pudełka na PC, ponieważ istnieje bardzo duże ryzyko, że usmażysz GT640 i / lub Raspberry Pi.

Lenik
źródło
Dlaczego Almos jest niemożliwe? Myślałem o użyciu chipsetu adaptera PCIe na USB, takiego jak MCS9901CV-CC, chcę wypróbować odwrotnie.
Arturo Veras
@ArturoVeras, ponieważ te urządzenia nie powinny być łączone i / lub używane razem. nie mówiąc już o brakujących sterownikach i oprogramowaniu, które musisz napisać, wydajność byłaby fatalna, co sprawiłoby, że cały wysiłek byłby dyskusyjny.
lenik
Może brakuje mi sensu. Popraw mnie, jeśli się mylę, pomysł polega na podłączeniu maliny, trochę jak, do GPU. Później możemy z tym zrobić klaster i mieć większą moc procesową. Chodzi o to, aby nie wykorzystywać prędkości transmisji PCIe zamiast tysiąca rdzeni GPU. Więc jeśli mogę się komunikować, używając GPIO oa chipa takiego jak MCS9901CV, będzie świetnie, ponieważ oznacza to, że mogę dodać więcej Raspberry pi i stworzyć klaster i voila !.
Arturo Veras
1
@ ArturoVeras Czy udało Ci się podłączyć prostszy procesor do RaspPi GPIO i komunikować się z nim rozsądnie? Zgadzam się z Lenikiem, że jest to niezwykle trudne zadanie (najpierw zapoznaj się z architekturą PCIe i komunikacją GPU), a korzyści są bardzo małe. Być może jako ćwiczenie najpierw spróbuj komunikować się z GPU podłączonym bezpośrednio do magistrali PCIe w komputerze.
ssavec
Nie, nie wiem. Studiuję protokół PCIe i sprawdzam, czy mogę się komunikować z GPIO Raspberry pi. Co myślisz o korzystaniu z PE4L-PM060A ?, To adapter PCIe na mPCIe. Zauważam, że interfejs PCI 1x zmniejsza tylko przepustowość PC1 16x, nie mam nic przeciwko temu. Tego rodzaju rzeczy mogą mi pomóc, ponieważ mogę użyć płyty programistycznej z interfejsem mPCIe.
Arturo Veras
3

Byłoby to możliwe, ale pamiętaj, że będziesz musiał napisać własne sterowniki i rozwiązać problemy z zasilaniem, ponieważ wątpię, czy RasPi będzie w stanie samodzielnie zasilać pełny procesor graficzny PCI / PCI-E. Należy również pamiętać, że procesor wpłynie również na moc GPU, więc może być pomysłem zbadanie przed próbą. <--- Dodatkowo możesz użyć kabla pionowego zasilanego 1x do 16x, powszechnie stosowanego w platformach wydobywczych GPU. Istnieją inne zasilane kable pionowe, które również wykorzystują karty adapterów do USB.

Zeusking19-Code
źródło
To jest teraz mój problem, problemy z zasilaniem. Jakie problemy mam na myśli, jeśli chcę użyć zewnętrznego zasilacza GPU?
Arturo Veras
1

Możesz użyć startKIT, który ma gniazdo karty PCI Express x1, którego możesz użyć do połączenia z odpowiednim GPU (prawdopodobnie będziesz musiał napisać własne sterowniki), a to może następnie połączyć się z Pi przez nagłówek GPIO.

W skrócie: tak, możesz, cały sprzęt do tego istnieje i jest łatwo dostępny, wszystko co musisz zrobić, to napisać logikę kleju, ale nie oczekuj, że będzie to łatwe.


źródło
Może podłączenie GPIO do PCIe za pomocą MCS9901?
Arturo Veras
StartKIT dodaje jedynie interfejs sprzętowy między PCIe i de RPi? Wymienione sterowniki muszą być zapisane w pakiecie startKit lub w RPi? Jaka jest trudność w programowaniu sterownika?
Arturo Veras
Prawdopodobnie bardzo trudne. Nie jestem do końca pewien, czy jest to wykonalne, ale teoretycznie dzięki startKIT będziesz mieć wymagany sprzęt i środowisko do robienia tego, co chcesz.
1
Co sądzisz o USB 2380 . Wydaje się, że jest to rozwiązanie, jedynym problemem jest to, że GT640 to 16x PCIe, a USB 2380 jest dla 1x PCIe, ale myślę, że to wcale nie jest problem.
Arturo Veras
@ ArturoVeras Trudno powiedzieć bez dostępu do szczegółów produktu, ale wydaje się, że powinno być to możliwe, ale spodziewaj się, że będzie to trudne. Prawdopodobnie nie będziesz w stanie w pełni wykorzystać mocy kart, jeśli i tak ma Pi jako hosta.
1

Tak więc, aby obudzić martwy wątek, nie zrobiłbym tego osobiście na Raspberry Pi. Poleciłbym przynajmniej Pi 3 z adapterem mPCIe na PCIe zaprojektowanym dla GPU komputerów stacjonarnych i zasilanym przez dedykowany zasilacz. Musisz także upewnić się, że wersja Linuksa obsługuje sterowniki; jeśli nie ma sterowników, ktoś musi je napisać, a odpowiednie zasoby i kod źródłowy mogą zająć miesiące. Jest to możliwe w 100%, ale prawdopodobnie będziesz musiał być wystarczająco utalentowany, aby napisać go dla społeczności, jeśli nie zostało to jeszcze zrobione.

Robschwab1
źródło
Oczywiście wszelkie sterowniki Linuksa wydane przez NVidię będą ukierunkowane na sprzęt podobny do komputera PC - nie mogę uwierzyć, że OP będzie w stanie uzyskać przepustowość danych, aby zrobić coś użytecznego, zamiast FPS (klatek na sekundę), nawet zakładając, że mógłby uzyskać jakikolwiek użyteczny wynik wyświetlania, założę się, że byłby mierzony w FPM lub PFH! 8-)
SlySven 27.04.16
NVidia dystrybuuje tylko zamknięte pliki binarne zamiast sterowników otwartego kodu źródłowego (w ten sam sposób, w jaki otrzymujemy tylko binarne obiekty BLOB, które są używane w RPi do obsługi GPU), co sprawia, że ​​tworzenie sterowników jest o wiele trudniejsze, jeśli nie niemożliwe ... IMHO .
SlySven 27.04.16
Jest to również prawdą i należy to wziąć pod uwagę. Każdy kod, który można znaleźć i dokonać inżynierii wstecznej dla pi 3, powinien być ceniony. Prawdopodobnie zajmie to zespół etycznych hakerów lub kilka firm, aby stworzyć rozwiązanie. W obu przypadkach byłoby to interesujące i zabawne na granicy.
Robschwab1,
0

Innym problemem, z którym się stykasz, jest to, że procesor wąskiego gardła karty graficznej, ponieważ jest taktowany tylko 700 MHz. Spróbowałbym tego na znacznie tańszym GT 210 (który można znaleźć za 20 - 30 USD). Jeśli chodzi o sterowniki, możesz znaleźć sterowniki Nvidia typu open source i skompilować je na ARM.

Orbita
źródło
Jaki jest z tym konkretny problem? Potrzebuję tylko obliczeń z GPU. Nie potrzebuję aplikacji w czasie rzeczywistym.
Arturo Veras
Co z tą kartą? SBC-A510 Komputer jednopłytkowy . Ma procesor 800 MHz i ma gniazdo PCIe 1x.
Arturo Veras
0

Po prostu wpadam na stary wątek. To prawie niemożliwe, ale głównym powodem jest kapitalizm i biurokracja, a nie pisanie sterowników.

Oczywiście pisanie sterowników jest bardzo trudne, ale pracuj z epickim zespołem i byłoby to zrobione przed wschodem słońca.

Jeszcze trudniej byłoby uzyskać dostęp do istniejących kodów źródłowych dla całej karty wideo, a może nawet kodów źródłowych dla BCM2835, BCM2836 lub BCM2837 (odpowiednio Pi 1, 2 i 3). Potrzebujesz ich, aby dowiedzieć się, jak działają karty wewnątrz i znaleźć sposób na ich wzajemne połączenie.

Musiałbyś być OEM, aby mieć nawet szansę na uzyskanie kodów źródłowych. Nawet fundacja Raspberry Pi sama nie miała ma trudności z tymi i musi osiąść na prekompilowany blob do współpracy z procesorem i GPU.

Wymagania dotyczące zasilania w ogóle nie będą stanowić problemu, ponieważ zanim zaczniesz błagać [nazwa firmy], już to zrozumiałeś. Prawdopodobnie zasilacz PC podłączony do karty graficznej, a także zasilający Pi poprzez szynę 5 V.

PNDA
źródło
0

MCS9990 to mostek PCIe na USB / ISA, zaprojektowany w celu zapewnienia dodatkowych portów USB / ISA / GPIO w systemie z interfejsem PCIe. Nie można go użyć do podłączenia urządzenia PCIe do systemu, który ma tylko USB, takiego jak RPi. To podejście jest od początku skazane na niepowodzenie.

Dmitrij Grigoriew
źródło
-1

Twoim jedynym problemem będą sterowniki. Byłoby tak fajnie zmusić GPU Nvidii do pracy na Pi, ale jest to prawie tak trudne, jak zbudowanie własnego GPU od zera.

Ludzie mają rację, sprzęt nie jest niemożliwy, ale będzie szkicowy. Jednak absolutnie potrzebujesz sterowników. Nawet gdybyś mógł napisać własny, nie byłyby one zoptymalizowane pod kątem wykorzystania szybkości i funkcji GPU.

Chciałem wypróbować to ze starą Nvidią GForce, ale jestem kiepskim programistą bez doświadczenia w hakowaniu sprzętu.

Uznałem, że to długa szansa, ale wysłałem e-mail do NVidii zaraz po wydaniu RTX i zapytałem, czy skompilują sterowniki dla kilku układów GPU przed 2010 r. Dla Pi i udostępnią je do pobrania i majstrowania przy nich lub wypuszczą kod źródłowy, z którego ludzie mogą się skompilować. Oczywiście powiedzieli „nie”.

Chodzi o to, że mamy zewnętrzne procesory graficzne do laptopów ( pomijane koszty ), a Wi-Fi w nowym Pi 3B + ma być szybki, dlaczego by nie sprawdzić, czy to zadziała?

Lockheed Silverman
źródło
Nie jestem pewien, czy daje to odpowiedź, czy jest sugestią, choć przydatną.
Greenonline
@ Greenonline To miało być sugestią i odpowiedzią (Przeczytaj ostatnie zdanie)
lockheed silverman,