CUDA-Terminalserver für Flash-Wiedergabe

Basti__1990

Admiral
Registriert
Dez. 2010
Beiträge
9.749
Hi,
ich bin am überlegen wie ich Videos in unserem Unternehmens-Intranet anzeigen kann ohne 100 neue Server für die Wiedergabe kaufen zu müssen, denn unsere Infrastruktur ist ein Terminalserveraufbau. Soll heißen alles Bildmaterial wird all Leistung die für die Wiedergabe gebraucht wird stellt der Server und übermittelt es per ICA [sowas wie RDP].
Insgesamt sind 500 Thin Clients angeschlossen.

Jetzt kam mir der einfall ein paar neue Terminalserver mit Tesla-Karten auszustatten um von CUDA bei der Flashwiedergabe zu profitieren (geht ja ab FlashPlayer-Version 10.1).

Wenn ich mir das alles richtig vorstelle, sollte das deutlich wirtschaftlicher sein als die Leistung "klassisch" mit CPUs stemmen zu wollen.
Die Frage an euch, geht das so alles oder habe ich da eine große MilchMädchenrechnung gemacht? :D

Besten Dank für eure Antworten! :)
 
vllt täusche ich mich, aber flash beschleunigt seine videos durch (VDPAU, DXVA) über den VP, also nicht über cuda, was eine programmierschnittstelle zur nutzung der SP ist.
deswegen wirst du mit Tesla-karten warscheinlich nicht an dein ziel gelangen. zumal beschleunigte videos auch nur am grafikausgang der jeweiligen karte (die die decodierarbeit verrichtet) ausgegeben werden kann, soweit mir bekannt ist. also kein "ich lass die karte arbeiten und stream es über netzwerk raus"
//edit: und wie viele hier schon bemerkt haben, wird dadurch die netzwerkauslastung bei mehrfachnutzung astronomisch sein.
zumal würde es meiner meinung nach günstiger sein, die jeweiligen clients mit einer grafikkarte auszustatten, die das decodieren von videos unterstützt, als den server mit tesla-karten auszustatten und die bandbreite zu erhöhen.
 
Zuletzt bearbeitet:
Video über TS? Das auch noch bei 500 Clients? Wie soll das funktionieren?

Problem sehe ich nicht im Rendern/Wiedergeben, sonder Übertragen.
 
Der Flaschenhals ist definitiv nicht die Dekodierung der Videos auf dem Terminal Server sondern die benötigte Bandbreite zum Streamen auf die Clients.
 
mofa84 schrieb:
Video über TS? Das auch noch bei 500 Clients? Wie soll das funktionieren?

Problem sehe ich nicht im Rendern/Wiedergeben, sonder Übertragen.

Die Übertragung ist dann die nächste Baustelle.
Es ist aber davon auszugehen, das nie all 500 Personen gleichzeitig Videos gucken, schließlich sollen die ja Arbeiten xD
Spaßbeiseite, ich geh von einem maximalen Peak von 100 Nutzern aus.
 
Gut, dann bau dir nen Server mit 100 Tesla GPUs zusammen...
 
weiß jemand zufällig gerade ein paar Werte für die benötigte Bandbreite bei einem (zb) 320p Flashvideo?

ich weiß das ein H.264 in 352*288 mit 30 Frames/s bis zu 768 kbit/s braucht.
 
Ja, aber das ist in encodiertem Zustand. Wenn das mal decodiert ist (das ist ja dann das was übertragen werden muss), wirds erst richtig lustig:

352*288 Pixel * 24 Bit/Pixel (oder müssen 32 Bit/Pixel übertragen werden? Glaub in dem Fall eher nicht...) * 30 frames/sec * 1/(8 Bit/Byte) * 1/(1024^2 B/MiB) = 8,7 MiB/sec.

Gruß,
Lord Sethur
 
Der technische Aufbau ist ein Rechenzentrum mit über 60 Aussenstellen, daher verteilt sich die enorm benötigte Bandbreite auf viele kleinere Stellen.
Es wird ja wohl möglich sein 2-3 Flashvideos gleichzeitig an eine Aussenstelle zu schicken oder etwa nicht? :D
 
Nicht, wenn die Videos decodiert sind - da brauchst Bandbreite, die in einem Netzwerk normalweise einfach nicht verfügbar ist. Zumal 352*288 ja nicht unbedingt als "High-Res" bezeichnet werden kann. Sind die Clients wirklich nicht in der Lage, ein einfaches Flash-Video abzuspielen?
 
ich wiederhole mich nochmals: flash nutzt NICHT cuda, sondern DXVA/VDPAU über den VP4, welcher auf CUDA-fähigen grafikkarten verbaut ist.
unabhängig von der grafikkarte hat der VP4 durchweg dieselbe performance. Egal ob Geforce 210 oder GTX580. Allein der gpu-takt hat auf seine Auslastung einfluss, die architektur ist auf jedem chip dieselbe.
und ich weiß nicht, wieviele videos dieser gleichzeitig decodieren wird/will und ob dieser auf einer tesla-karte überhaupt vorhanden ist.
tesla-karten werden dir bei deinem vorhaben nicht viel bringen...
das meinte hayden übrigens als er dich darauf hinwies, das du 100 tesla-gpu's für dein Vorhaben benötigst.
es ist weitaus wirtschaftlicher, jeden client mit ner 25€ grafikkarte auszustatten welche das übernimmt als den Server mit Tesla-karten auszustraffieren, die mit flash soviel anfangen können wie Hawkins mit den Olympischen Spielen.
 
Zuletzt bearbeitet:
das war ein äußerst böser vergleich :D

also vielen dank fürs deutlich machen.
da wir letztes Jahr erst sämtliche Plätze mit Thin Clients ausgestattet haben, kommt die 25€ Grafikkarte für jeden Platz leider nicht in frage.
ich brauch eine Lösung die mit Terminalservern funktioniert =(

Mal von Flash abgesehen, gäbe es eine anderes Videoformat das ich per GPU (egal ob Nvidia oder AMD) entsprechend beschleunigen kann?
 
nahezu ALLE videocodecs können über den Videoprozessor VP4 per hardware beschleunigt werden. wenn du selbiges über CUDA realisieren willst, musst du einen Softwaredecoder für CUDA schreiben, dann kann ein video per Software in den CUDA-cores decodiert werden (was gegenüber dem VP sehr ineffizient sein wird). Selbiges gilt für AMDs pendant, oder OpenCL, welches auf beiden nutzbar ist.
zu den bereits bekannten problemen kommt hinzu, das die umleitung eines aufgerufenen yt-videos zum decodieren zum server umgeleitet und dann unkomprimiert zum client geleitet wird, welcher dies dann wiederum über den flash-player wiedergeben soll, der für diese option meiens wissens nicht vorgesehen ist.
mit vlc könnte ich mir diese realisierung eher vorstellen. aber so oder so: du wirst, wenn du deine lösung durchkloppen willst, nicht ums programmieren eigener lösungen hinwegkommen, die zudem sehr fachspezifisch und kompliziert sind.
aber ich wünsch dir viel glück dabei :D
 
Zuletzt bearbeitet:
Basti__1990 schrieb:
das war ein äußerst böser vergleich :D

also vielen dank fürs deutlich machen.
da wir letztes Jahr erst sämtliche Plätze mit Thin Clients ausgestattet haben, kommt die 25€ Grafikkarte für jeden Platz leider nicht in frage.
ich brauch eine Lösung die mit Terminalservern funktioniert =(

Mal von Flash abgesehen, gäbe es eine anderes Videoformat das ich per GPU (egal ob Nvidia oder AMD) entsprechend beschleunigen kann?
mal ne blöde Frage - was ist dein eigentlicher Job in der Firma?

Um es nochmal deutlich zu sagen: ES LIEGT NICHT AN FLASH!!!! DAS PROBLEM WIRD AUCH DURCH KEINEN ANDEREN CODEC ODER GPU-UNTERSTÜTZUNG ETC. GELÖST!!!!

Wie Lord Sethur schon vorgerechnet hat, fallen bei der Übertragung des Videos mehrere MB pro Sekunde an - das killed jedes LAN und wenn es dann noch übers WAN gehen soll... äh ... Vergiss es!
 
Könntet ihr das Bandbreitenproblem bitte meine Sorge sein lassen? ^^
Die Übertragung findet per ICA-Video statt und daher sind es keine mehren MB pro Sekunde.
Wie viel Bandbreite genau wird in den nächsten Tagen praxisnah getestet.

Mein Job ist es erste Vorarbeit dafür zu leisten mediale Inhalte (zb. Videos) in die bestehende Terminalserverlösung zu bringen. Oder willst du jetzt wissen was ich für einen Ausbildungsgrad habe? Das wäre dann Abitur und zur Zeit studiere ich Wirtschaftsinformatik als Duales Studium.
 
Dein ICA funktioniert aber nunmal so:
sowohl auf dem server als auch auf dem client ist der desktop vorhanden (inkl. der nötigen Bibliotheken zur darstellung selbigen), und die benutzereingaben werden vom client an den server weitergeleitet, welcher diese ausführt, und die änderung des desktops wiederum an den client überträgt. dabei werden wie in einem Spiel über netzwerk nur positions/aktions und umgebungsdaten gesendet, bei denen der traffic vergleichsweise gering ist.
selbiges lässt sich aber NICHT für die darstellung eines videos realisieren. wenn es im server decodiert wird, muss es zwangsläufig unkomprimiert auf den client gestreamt wird.
der traffic wird also so oder so zustande kommen.

//edit: hab mich verlesen. ICA komprimiert die ausgabe des desktops und schickt es an die clients. in diesem fall ist es wie du bereits gesagt hast, weniger relevant was auf den desktop angezeigt wird.

mein fehler :D

Bleibt also noch, wie man den server dazu bringt, quasi bis zu 100 videos gleichzeitig zu decodieren.
Soweit ich bis jetzt recherchieren konnte, ist in Tesla-karten kein VP vorhanden bzw deaktiviert.
Also bleiben nur die Quadro-lösungen oder eben gewöhnliche desktop-grafikkarten.
welche aber wiederum den Nachteil haben, das der VP4 mom mit 2 1080p-H264 videos ausgelastet ist.
vllt schaffst du 6-12 flashvideos gleichzeitig, dann ist auch schon ende.
dh. du bräuchtest für diese aufgabe jede menge grafikkarten, und eine feste zuweisung zu den clients, oder ein programm, welches dies intelligent verwaltet.
 
Zuletzt bearbeitet:
Also alle Thin Clients raus und normale PCs hin?

Getestet wirds trotzdem, mal sehen was rauskommt =) ich brauch schließlich zahlen, aber die bekomm ich nur mit testen.
 
Hab gerade einen selbstversuch gestartet, bei dem meine Grafikkarte 4 1080p videos decodieren konnte und dabei zu einer auslastung von 90% kam. Das Video ist identisch mit den 1080p-videos von youtube, was kompression und format betrifft.

http://saved.im/mtgznzqxanrm/videoload560ti.jpg

wenn also nicht gerade alle 1080p schauen, könntest du realistischerweise bis zu 10 320p videos gleichzeitig pro grafikkarte berechnen.
 
Zuletzt bearbeitet:
bei 2 grafikkarten pro rack, wäre das ok. danke fürs testen =)
 

Ähnliche Themen

Zurück
Oben