Was ist CUDA Anmeldung heute Einführung in die parallele Programmierung Eine offene, Online-Kurs von Udacity Instruktoren: Dr. John Owens, UC Davis und Dr. David Luebke, NVIDIA CUDA reg ist eine parallele Rechenplattform und Programmiermodell von NVIDIA erfunden. Es ermöglicht dramatischen Anstieg der Rechenleistung durch die Nutzung der Leistung der Grafik-Processing-Unit (GPU). Mit Millionen von CUDA-fähigen GPUs bisher verkauft, Software-Entwickler, Wissenschaftler und Forscher zu finden, breit angelegte Anwendungen für GPU Computing mit CUDA. Hier sind ein paar Beispiele: Identifizieren versteckte Plaque in Arterien. Herzinfarkte sind weltweit die häufigste Todesursache. Harvard Engineering, Harvard Medical School und Brigham Womens Hospital haben sich zusammengetan, um GPUs zu verwenden, um den Blutfluss zu simulieren und versteckte arterielle Plaque ohne invasive bildgebende Verfahren oder explorative Chirurgie zu identifizieren. Analysieren Sie den Flugverkehr. Das Nationale Luftraumsystem verwaltet die bundesweite Koordination des Flugverkehrs. Computermodelle helfen, neue Wege zu finden, um Staus zu lindern und Flugzeugverkehr effizient zu halten. Unter Verwendung der Rechenleistung von GPUs erzielte ein Team der NASA einen großen Leistungsgewinn, wodurch die Analysezeit von zehn Minuten auf drei Sekunden reduziert wurde. Visualisieren Sie Moleküle. Eine molekulare Simulation namens NAMD (nanoskalige Molekulardynamik) erhält eine große Leistungssteigerung mit GPUs. Die Beschleunigung ist ein Ergebnis der parallelen Architektur von GPUs, die es NAMD-Entwicklern ermöglicht, rechenintensive Teile der Anwendung mit dem CUDA Toolkit auf die GPU zu portieren. Hintergrund GPU Computing: Die Revolution Youre konfrontiert mit Imperativen: Verbessern Sie Leistung. Lösen Sie ein Problem schneller. Parallele Verarbeitung wäre schneller, aber die Lernkurve steil ist es nicht mehr. Mit CUDA können Sie C, C und Fortran Code direkt in GPU, keine Assembler-Sprache erforderlich. Entwickler in Unternehmen wie Adobe, ANSYS, Autodesk, MathWorks und Wolfram Research wachen, dass schlafende Riese die GPU - universelle wissenschaftliche und technische Informatik über eine Reihe von Plattformen zu tun. Mithilfe von High-Level-Sprachen führen GPU-beschleunigte Anwendungen den sequentiellen Teil ihrer Arbeitsbelastung auf der CPU aus, die für die Leistung eines einzelnen Threads optimiert ist, während die parallele Verarbeitung auf der GPU beschleunigt wird. Dies nennt man GPU-Computing. GPU-Computing ist möglich, weil heute GPU viel mehr als Grafik zu tun macht: Es sizzles mit einem teraflop der Fließkomma-Leistung und knirscht Anwendungsaufgaben, die für alles von der Finanzierung zur Medizin entworfen sind. CUDA ist weit verbreitet durch Tausende von Anwendungen und veröffentlichte Forschungs-Papiere und unterstützt von einer installierten Basis von über 375 Millionen CUDA-fähigen GPUs in Notebooks, Workstations, Computer-Cluster und Supercomputer eingesetzt. Besuchen Sie CUDA Zone für Anwendungsbeispiele in verschiedenen vertikalen Märkten und erwecken Sie Ihren GPU Riesen. Geschichte der GPU-Berechnung Die ersten GPUs wurden als Grafikbeschleuniger entworfen, die nur bestimmte Festnetz-Pipelines unterstützen. In den späten 1990er Jahren wurde die Hardware zunehmend programmierbar und gipfelte in der ersten GPU von NVIDIA im Jahr 1999. Weniger als ein Jahr nachdem NVIDIA den Begriff GPU prägte, waren Künstler und Spieleentwickler die einzigen, die bahnbrechende Arbeit mit der Technologie machten: Forscher waren es Wodurch seine hervorragende Gleitkomma-Leistung erreicht wird. Die GPGPU-Bewegung (General Purpose GPU) war angebrochen. Aber GPGPU war noch lange nicht einfach, selbst für diejenigen, die Grafik-Programmiersprachen wie OpenGL kannten. Entwickler mussten wissenschaftliche Berechnungen auf Probleme aufbauen, die durch Dreiecke und Polygone repräsentiert werden konnten. GPGPU war praktisch unbegrenzt für diejenigen, die nicht die neuesten Grafik-APIs gespeichert hatte, bis eine Gruppe von Stanford University Forscher, um die GPU als Streaming-Prozessor neu zu definieren. Im Jahr 2003 enthüllte ein Forscherteam von Ian Buck Brook, das erste weit verbreitete Programmiermodell, um C mit Daten-Parallel-Konstrukten zu erweitern. Unter Verwendung von Konzepten wie Streams, Kerneln und Reduktionsoperatoren enthüllte das Brook-Compiler - und Runtime-System die GPU als Allzweckprozessor in einer hochrangigen Sprache. Am wichtigsten war, Brook-Programme waren nicht nur leichter zu schreiben als Hand-abgestimmt GPU-Code, sie waren sieben Mal schneller als vergleichbare bestehende Code. NVIDIA wusste, dass blitzschnelle Hardware mit intuitiven Software - und Hardware-Tools gekoppelt werden musste, und lud Ian Buck dazu ein, sich dem Unternehmen anzuschließen und eine Lösung für die nahtlose Ausführung von C auf der GPU zu entwickeln. NVIDIA stellte die Software und Hardware zusammen, enthüllte CUDA 2006, die weltweit erste Lösung für General-Computing auf GPUs. ECOSYSTEM Tools und Training Das CUDA-Ökosystem wächst rasant, da immer mehr Unternehmen erstklassige Werkzeuge, Dienstleistungen und Lösungen anbieten. Wenn Sie Ihren eigenen Code schreiben möchten, ist der einfachste Weg, die Leistung von GPUs zu nutzen, mit dem CUDA Toolkit. Die eine umfassende Entwicklungsumgebung für C - und C-Entwickler bietet. Das CUDA Toolkit enthält einen Compiler, Mathematik-Bibliotheken und Tools zum Debuggen und Optimieren der Performance Ihrer Anwendungen. Youll finden Sie auch Code-Beispiele, Programmierhandbücher, Benutzerhandbücher, API-Referenzen und anderen Dokumentationen, um Ihnen den Einstieg zu erleichtern. NVIDIA bietet all dies kostenlos, einschließlich NVIDIA Parallel Nsight für Visual Studio, die branchenweit erste Entwicklungsumgebung für massiv parallele Anwendungen, die sowohl GPUs als auch CPUs verwenden. Lernen, CUDA ist bequem, mit umfassenden Online-Schulungen sowie andere Ressourcen, wie Webinare und Bücher. Über 400 Universitäten und Hochschulen lehren CUDA-Programmierung, darunter Dutzende von CUDA Centres of Excellence und CUDA Forschungs - und Ausbildungszentren. Für Entwickler Für einen anderen Ansatz können Sie das exponentielle gleitende durchschnittliche Fenster abschneiden und dann Ihr gefiltertes Signal berechnen, indem Sie eine Faltung zwischen Ihrem Signal und dem fensterartigen Exponential durchführen. Die Faltung kann mit Hilfe der kostenlosen CUDA FFT-Bibliothek (cuFFT), weil berechnet werden, wie Sie vielleicht wissen, die Faltung kann als die punktweise Multiplikation der beiden Signale in der Fourier-Domäne ausgedrückt werden (Dies ist der treffend nennen Faltungssatz, Die mit einer Komplexität von O (n log (n)) verläuft). Dieser Ansatz wird Ihre CUDA Kernel-Code zu minimieren und sehr, sehr schnell, sogar auf einer GeForce 570 Gerade so ausgeführt werden, wenn Sie alle Ihre Berechnungen in einzelnen (float) Präzision zu tun. Ich würde vorschlagen, die oben genannten Differenz-Gleichung zu manipulieren, wie unten angegeben und dann mit CUDA Thrust primitives. Differenzengleichungs MANIPULATION - expliziter Form der Differenzengleichung Durch einfache Algebra, können Sie die folgenden finden: Dementsprechend ist die explizite Form ist die folgende: CUDA THRUST UMSETZUNG Sie können die oben explizite Form durch die folgenden Schritte implementieren: Initialisieren einer Eingangssequenz deingangs zu Alpha mit Ausnahme von dinput0 1. Definiere einen Vektor d1overbetatothen gleich 1, 1 / beta, 1 / beta2, 1 / beta3. Multiplizieren Sie element DINPUT von d1overbetatothen eine inclusivescan Führen Sie die Sequenz des yn / Betan Teilen Sie die obige Sequenz zu erhalten, um 1, 1 / beta, 1 / Beta2, 1 / beta3. Der obige Ansatz kann für Linear Time-Varying (LTV) - Systeme empfohlen werden. Für lineare zeitinvariante (LTI) Systeme kann der von Paul erwähnte FFT-Ansatz empfohlen werden. Im bieten ein Beispiel für diesen Ansatz, indem Sie CUDA Thrust und cuFFT in meiner Antwort auf FIR-Filter in CUDA. Im nicht ein Programmierer mit allen Fähigkeiten. Nur jemand neugierig CUDA und so Im tut ein wenig lesen. Ich lief über ein Beispiel der Verwendung von Thrust, um einen gleitenden Durchschnitt zu tun: Das Beispiel, wie es ist, läuft und funktioniert meistens richtig. Allerdings trivial in dem Sinne, dass es nur eine gleitende durchschnittliche Operation. Wie würde ich sagen, 352 dieser gleitenden durchschnittlichen Operationen parallel, die alle auf dem gleichen Datenstrom In meinem Kopf könnte der Programmablauf sein: Generieren Sie die Daten amp senden Sie es an einen CUDA-Kern. Kopieren Sie es aus dem CUDA-Kern in alle anderen 351 CUDA-Kerne in meinem GTX 465 Sagen Sie jedem CUDA-Kern, welche Anzahl der Datenelemente durchschnittlich über. (4. 5. 6. 352. 353. 354) Sagen Sie dem Gerät, den Durchschnitt in jedem Kern parallel ausführen Lesen Sie die Ergebnisse von jedem Kern Ich erhalte, dass dieser Code macht es alle passieren, aber wie bekomme ich Thrust zu tun Viele von ihnen parallel Mein Interesse hier ist über etwas wie Bestandsdaten. Wenn Im Blick auf GOOG Preise Id gesetzt, dass in der GPU mit allen Kernen und lassen Sie es dort. Id dann frei sein, um viel Verarbeitung zu tun, ohne das Laden der Daten mehr und nur das Lesen zurück Ergebnisse aus jedem Kern. HINWEIS: Ich möchte nicht GOOG in allen Kernen verwenden. Einige Kerne konnten GOOG sein, andere mit irgendein anderem Symbol, aber Kranke erhalten dort später. Ich denke gerade, dass ich nicht die auf lagerdaten im globalen Gedächtnis wünsche, wenn theres genügend Raum in jedem Kern. Ich nehme an, das ist ziemlich einfach für CUDA amp Thrust Sep 12 12 at 19:39 Mein Verständnis ist, dass Sie sich für die folgenden zwei Situationen interessieren: Sie haben eine lange Abfolge von Elementen, und Sie wollen eine bestimmte Anzahl von Durchschn Mittelwertbildung auf unterschiedliche Stückzahlen, dh unterschiedliche Längen für das gleitende Mittelfenster. Dies ist, was ich aus Ihrer ursprünglichen Frage zu verstehen. Sie haben eine Folge von Sequenzen, die nacheinander im Speicher abgelegt sind, und Sie möchten sie parallel zu einem festen Mittelungsfenster der Größe 2 RADIUS 1 klassifizieren. Dies ist der von asm vorgeschlagene ArrayFire-Code - Sie haben ihn akzeptiert. Statt mit CUDA Thrust, ich denke, es wäre einfacher, Ihre eigenen CUDA Kernel schreiben, um die oben genannten Operationen zu tun. Unten, ein voll gearbeitetes Beispiel, das in der gleichen Weise arbeitet wie der von asm vorgeschlagene ArrayFire-Code, also für Fall 2. Die Änderung an Fall 1 wäre einfach. Beantwortet Ihre Antwort 2016 Stack Exchange, IncWhen Berechnung eines laufenden gleitenden Durchschnitt, die Platzierung der Durchschnitt in der mittleren Zeitspanne macht Sinn Im vorherigen Beispiel haben wir den Durchschnitt der ersten 3 Zeiträume berechnet und platziert es neben Periode 3. Wir konnten den Durchschnitt in der Mitte des Zeitintervalls von drei Perioden platzieren, das heißt, neben Periode 2. Dies funktioniert gut mit ungeraden Zeitperioden, aber nicht so gut für sogar Zeitperioden. Also, wo würden wir den ersten gleitenden Durchschnitt platzieren, wenn M 4 Technisch, würde der Moving Average bei t 2,5, 3,5 fallen. Um dieses Problem zu vermeiden, glätten wir die MAs unter Verwendung von M 2. So glätten wir die geglätteten Werte Wenn wir eine gerade Anzahl von Terme mitteln, müssen wir die geglätteten Werte glätten Die folgende Tabelle zeigt die Ergebnisse unter Verwendung von M 4.Barracuda Networks, Inc. verletzt Seine 50 Tage gleitenden Durchschnitt in einem Bullish Manner. CUDA-US. 11. Juli 2016 Aktienkursentwicklung gegenüber Vergleichsaktien Im Vergleich zu den Vergleichsaktien steht die relative Underperformance gegenüber dem Vorjahr im Gegensatz zur jüngsten Outperformance. CUDA-US 8216s Aktienkursentwicklung von -52,39 in den letzten 12 Monaten unter seinem Peer-Median, aber seine 30-Tage-Trend der Aktienkursentwicklung von 15,77 ist besser als der Peer-Median. Dieser jüngste steigende Aktienkurs kann eine Veränderung der relativen Aktienkursentwicklung verkünden. Quadrantenbeschriftungen. Hover, um mehr zu erfahren Führende, Fading, Lagging, Rising Screen für Unternehmen mit relativen Aktienkurs Performance Earnings Momentum Barracuda Networks, Inc. hat eine Ergebnisnote von 68,99 und hat eine relative Bewertung von OVERVALUED. Aktien mit hohem Ertrag Momentum sind eine bevorzugte Option für Impulsspiele. Wenn sie unterbewertet sind, kann dies ein weiterer Vorteil sein und auf eine anhaltende Dynamik hindeuten. Quadrantenbeschriftungen. Hover, um mehr zu wissen Überbewertet, High Earnings Momentum, Undervalued, High Earnings Momentum, UnderValued, Low Earnings Momentum, Überbewertet, Low Earnings Momentum Bildschirm für Unternehmen mit Earnings Momentum Score
No comments:
Post a Comment