Über den Service
ÜbersetztIch entwickle hochleistungsfähige numerische Kerne in Futhark – einer rein funktionalen, datengestützten Sprache, die zu CUDA und OpenCL kompiliert. Wenn Sie eine heiße Schleife, Simulation oder eine große Menge an Array-Operationen haben, die die CPU-Grenzen erreicht, werde ich sie umschreiben, damit sie auf der GPU läuft, und Sie müssen keine einzige Zeile Low-Level-Gerätekode von Hand schreiben. Futhark bietet starke Garantien: keine Nebenwirkungen, keine Alias-Überraschungen, und der Compiler selbst fusioniert map-, reduce-, scan- und segmentierte Operationen in kompakte Kerne. Der typische Arbeitsablauf ist folgender: Zuerst profiliere ich Ihre aktuelle Pipeline und finde Abschnitte, die wirklich parallel sind. Dann drücke ich sie in Futhark durch rein funktionale Kombinatoren aus, wobei ich Lesbarkeit und Determinismus bewahre. Ich vergleiche das Ergebnis mit Ihrer Basisversion, passe Blockgrößen und Speicherzugriffsmuster an und iteriere, bis die Zahlen überzeugend sind. Schließlich bette ich alles wieder in Ihren Stack ein: Futhark generiert eine C-Bibliothek und ich verpacke sie, damit Sie sie über ctypes oder eine kleine Erweiterung aus Python aufrufen können, oder sie direkt in ein Host-Programm in C oder C++ einbinden können. Im Laufe der Jahre habe ich die Monte-Carlo-Optionspreisgestaltung, Bild- und Signalfilter, physikalische Schablonen, lineare Algebra-Verfahren und die Vorverarbeitung für maschinelles Lernen beschleunigt. Sie erhalten sauberen Quellcode, ein Build-Skript, eine Test-Suite, die die GPU-Ausgabe mit einer Basisversion überprüft, Benchmark-Ergebnisse und eine kurze Notiz, wie Sie den Code neu erstellen und erweitern können. Beschreiben Sie die Aufgabe und die Zielhardware – und ich werde die tatsächliche Beschleunigung schätzen, bevor wir beginnen.