Forum: FPGA, VHDL & Co. FPGA und VMWare


von Mario H. (_d3v3l_)


Lesenswert?

Hallo an alle!
Ich habe eine Frage bezüglich FPGA-Karten und Virtuellen Maschinen:
Kann ich aus einer VM heraus auf eine FPGA-Karte zugreifen, also zum 
Beispiel aus einer Anwendung innerhalb der VM die FPGA-Karte 
verwenden(also Speicherbereiche ansprechen (Paravirtualisierung)?
Oder muss der Hypervisor angepasst werden?
Hat jemand Erfahrungen damit?

Würde mich über Antwort freuen!

von Wat (Gast)


Lesenswert?

Wat du wolle?


>auf eine FPGA-Karte zugreifen,

Wie du wolle? PCIe? USB? Ethernet?

von Mario H. (_d3v3l_)


Lesenswert?

Über PCIe. Karte reinstecken und aus der VM heraus mittels entsprechedem 
Framework ansteuern.

von Duke Scarring (Gast)


Lesenswert?

Mario H. schrieb:
> aus der VM
Welcher? Die eine? Läßt Du Dir immer alles tröpfchenweise aus der Nase 
ziehen? Hast Du Dir Deine Frage mal durchgelesen? Würdest Du die so auf 
der Straße oder in der Kneipe stellen und auf Antwort hoffen?

Duke

von Mario H. (_d3v3l_)


Lesenswert?

Sorry, bin nur gerade auf Recherchetour und habe noch sehr wenig Ahnung 
von der ganzen FPGA Problematik da ich nur über ein existentes Framework 
darauf zugreife (große Blackbox).

Also hier mein Problem:
In einem Server sind FPGA Karten über den PCIe eingebaut. Am Server 
läuft Windows Server 2008. Es gibt ein Framework auf C++ Basis, welches 
mir erlaubt Berechnungen (FFT usw.) auf einer FPGA Karte auszuführen 
(keine Ahnung was dahinter passiert, ist mir als Anwendungsprogrammierer 
auch ehrlich gesagt vollkommen egal).
Jetzt wurde die Frage gestellt, ob nicht ein anderes Betriebssystem (z.B 
Debian) auch als Clientbetriebsystem herangezogen werden und ob sich bei 
Bedarf (ohne Dualbootsystem) das OS wechseln lassen könnte.
Ich weiß, dass das Framework portiert werden kann, also keine Probleme 
von dieser Seite.
Was ich nicht weiß, ob das Framework durch den Hypervisor hindurch 
funktioniert oder ob auf der Abstraktionsebene etwas geändert werden 
müsste.
Das hat wiederum zur Folge, welches Virtualisierungssystem ich nutzen 
könnte.
Ich würde es gerne über ESX 4 probieren, da wären Adaptierungen am 
Hypervisor aber eher ausgeschlossen - ich müsste daher auf ein anderes 
System (z.B XEN) ausweichen.

von Lattice User (Gast)


Lesenswert?

Mario H. schrieb:
> Sorry, bin nur gerade auf Recherchetour und habe noch sehr wenig Ahnung
> von der ganzen FPGA Problematik da ich nur über ein existentes Framework
> darauf zugreife (große Blackbox).

Dein Problem hat mit dem FPGA rein gar nichts zu tun. Aus der Sicht des 
Betriebssytems und damit auch der VM Lösung ist das nichts anderes als 
eine PCI oder PCIe Karte mit properitären Protokol. Virtualisert werden 
kann da gar nichts ohne Anpassungen am HT und Kartentreiber. Eventuell 
geht eine Lösung, die nur den Addressraum und die Interrupts auf genau 
eine VM Sitzung mappt, aber bereits bei DMA wird das sehr haarig.
Andere Karte mit genau dem gleichem Problem sind z.B. PCI/PCIe TV und 
Soundkarten. Vielleicht hilft dir das bei Suche weiter.

von Harald S. (harri)


Lesenswert?

Mario H. schrieb:
> Ich würde es gerne über ESX 4 probieren, da wären Adaptierungen am
> Hypervisor aber eher ausgeschlossen - ich müsste daher auf ein anderes
> System (z.B XEN) ausweichen.

Wenn deine Hardware sowohl von CPU, also auch vom Chipsatz und Bios 
Virtualisierung unterstützt, kann VMware ESX4.1 und auch 5.0 eine 
PCI-Karte des Hosts in eine VM durchreichen. Der Host braucht keinen 
Treiber für die Karte, das funzt durch die 
Virtualisierungs-Unterstützung der Hardware direkt auf PCI-Ebene.

Habe ich bereits mit ESXi 4.1, einem Dell Optilex 790 und einer Eicon 
Diva Karte probiert. Im Gast-OS wurde die Hardware gefunden und der 
Treiber geladen.

mfg
Harri

von Mario H. (_d3v3l_)


Lesenswert?

@LatticeUser Danke für die Info. Werde in dieser Richtung mal weiter 
sehen.
@harri Danke für den Erfahrungsbericht. Lässt mich hoffen, dass ich zu 
einer Lösung komme. Serverhardware kann auf jeden Fall VT, hoffe das 
genügt.

von Harald S. (harri)


Lesenswert?

Mario H. schrieb:
> @harri Danke für den Erfahrungsbericht. Lässt mich hoffen, dass ich zu
> einer Lösung komme. Serverhardware kann auf jeden Fall VT, hoffe das
> genügt.

Andernfalls poste mal ein paar Infos zu der Hardware (Servermodell, 
CPU-Typ)
Nicht nur die CPU muss VT können, sondern auch der Chipsatz - ich glaube 
VT-IO oder VT-D war das Kürzel dafür.

Harri

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.