GPU-Computing: Mythen und Realität. Nutzen wir die Fähigkeiten der GPU, um die Software-Addition zu beschleunigen. Parallelität und die neue NVIDIA Fermi-Architektur

💖 Gefällt es dir? Teilen Sie den Link mit Ihren Freunden

Ich hatte einmal die Gelegenheit, auf dem Computermarkt mit dem technischen Direktor eines der vielen Unternehmen zu sprechen, die Laptops verkaufen. Dieser „Spezialist“ versuchte mit Schaum vor dem Mund genau zu erklären, welche Laptop-Konfiguration ich brauchte. Die Hauptbotschaft seines Monologs war, dass die Zeit der Zentraleinheiten (CPUs) vorbei ist und jetzt alle Anwendungen aktiv Berechnungen auf dem Grafikprozessor (GPU) nutzen und daher die Leistung eines Laptops vollständig von der GPU und Ihnen abhängt Ich muss nicht auf die CPU achten. Als mir klar wurde, dass es absolut sinnlos war, mit diesem technischen Direktor zu streiten und zu argumentieren, verschwendete ich keine Zeit und kaufte den Laptop, den ich brauchte, in einem anderen Pavillon. Allerdings hat mich schon die Tatsache der offensichtlichen Inkompetenz des Verkäufers beeindruckt. Es wäre verständlich, wenn er mich als Käufer täuschen wollte. Gar nicht. Er glaubte aufrichtig an das, was er sagte. Ja, anscheinend essen die Vermarkter von NVIDIA und AMD ihr Brot aus einem bestimmten Grund, und sie haben es geschafft, einigen Benutzern die Vorstellung von der dominanten Rolle des Grafikprozessors in einem modernen Computer zu vermitteln.

Die Tatsache, dass GPU-Computing (Grafikprozessor) heutzutage immer beliebter wird, steht außer Zweifel. Dies schmälert jedoch keineswegs die Rolle des Zentralprozessors. Wenn wir über die überwiegende Mehrheit der Benutzeranwendungen sprechen, hängt ihre Leistung heute außerdem vollständig von der CPU-Leistung ab. Das heißt, die überwiegende Mehrheit der Benutzeranwendungen nutzt kein GPU-Computing.

Im Allgemeinen wird GPU-Computing hauptsächlich auf speziellen HPC-Systemen für wissenschaftliches Rechnen durchgeführt. Aber Benutzeranwendungen, die GPU-Computing verwenden, können einerseits abgezählt werden. Es sei gleich darauf hingewiesen, dass der Begriff „GPU-Computing“ in diesem Fall nicht ganz korrekt ist und irreführend sein kann. Tatsache ist: Wenn eine Anwendung GPU-Computing verwendet, bedeutet dies nicht, dass der Zentralprozessor im Leerlauf ist. Beim GPU-Computing wird die Last nicht vom Zentralprozessor auf den Grafikprozessor übertragen. In der Regel bleibt der Zentralprozessor ausgelastet, und der Einsatz eines Grafikprozessors zusammen mit dem Zentralprozessor kann die Leistung verbessern, also die Zeit verkürzen, die zum Erledigen einer Aufgabe benötigt wird. Darüber hinaus fungiert die GPU selbst hier als eine Art Coprozessor für die CPU, ersetzt diese jedoch keinesfalls vollständig.

Um zu verstehen, warum GPU-Computing kein Allheilmittel ist und warum es falsch ist zu sagen, dass seine Rechenleistung denen der CPU überlegen ist, muss man den Unterschied zwischen einem Zentralprozessor und einem Grafikprozessor verstehen.

Unterschiede in GPU- und CPU-Architekturen

CPU-Kerne sind darauf ausgelegt, einen einzelnen Strom sequenzieller Befehle mit maximaler Leistung auszuführen, während GPU-Kerne darauf ausgelegt sind, schnell eine sehr große Anzahl paralleler Befehlsströme auszuführen. Dies ist der grundlegende Unterschied zwischen GPUs und Zentralprozessoren. Die CPU ist ein Allzweck- oder Allzweckprozessor, der für diese Leistung optimiert ist Hochleistung ein einzelner Befehlsstrom, der sowohl Ganzzahlen als auch Gleitkommazahlen verarbeitet. In diesem Fall erfolgt der Zugriff auf den Speicher mit Daten und Anweisungen überwiegend zufällig.

Um die CPU-Leistung zu verbessern, sind sie darauf ausgelegt, möglichst viele Anweisungen parallel auszuführen. Zu diesem Zweck verwenden die Prozessorkerne beispielsweise eine Out-of-Order-Befehlsausführungseinheit, die es ermöglicht, Befehle in der Reihenfolge, in der sie empfangen wurden, neu anzuordnen, was es ermöglicht, den Grad der Parallelität zu erhöhen Implementierung von Anweisungen auf der Ebene eines Threads. Dies ermöglicht jedoch immer noch nicht die parallele Ausführung einer großen Anzahl von Anweisungen, und der Overhead der Parallelisierung von Anweisungen innerhalb des Prozessorkerns erweist sich als sehr erheblich. Aus diesem Grund verfügen Allzweckprozessoren nicht über eine sehr große Anzahl von Ausführungseinheiten.

Der Grafikprozessor ist grundlegend anders konzipiert. Es wurde ursprünglich für die Ausführung einer großen Anzahl paralleler Befehlsströme entwickelt. Darüber hinaus sind diese Befehlsströme von Anfang an parallelisiert, und es fallen einfach keine Mehrkosten für die Parallelisierung von Anweisungen in der GPU an. Die GPU ist für das Rendern von Bildern ausgelegt. Vereinfacht ausgedrückt nimmt es eine Gruppe von Polygonen als Eingabe, führt alle notwendigen Operationen aus und erzeugt Pixel als Ausgabe. Die Verarbeitung von Polygonen und Pixeln erfolgt unabhängig; sie können parallel und getrennt voneinander verarbeitet werden. Daher verwendet die GPU aufgrund der inhärent parallelen Arbeitsorganisation eine große Anzahl von Ausführungseinheiten, die im Gegensatz zum sequentiellen Befehlsfluss für die CPU leicht zu laden sind.

Grafik- und Zentralprozessoren unterscheiden sich auch in den Prinzipien des Speicherzugriffs. In einer GPU ist der Speicherzugriff leicht vorhersehbar: Wenn ein Texturtexel aus dem Speicher gelesen wird, kommt nach einiger Zeit die Frist für benachbarte Texel. Bei der Aufnahme passiert das Gleiche: Wird ein Pixel in den Framebuffer geschrieben, wird nach einigen Taktzyklen das daneben liegende Pixel geschrieben. Daher benötigt die GPU im Gegensatz zur CPU einfach keinen großen Cache-Speicher und Texturen benötigen nur wenige Kilobyte. Auch das Prinzip der Arbeit mit Speicher unterscheidet sich bei GPUs und CPUs. Alle modernen GPUs verfügen also über mehrere Speichercontroller und der Grafikspeicher selbst ist schneller, sodass GPUs viel mehr haben Ö größere Speicherbandbreite im Vergleich zu Universalprozessoren, was auch für parallele Berechnungen mit großen Datenströmen sehr wichtig ist.

In Universalprozessoren Ö Der größte Teil der Chipfläche wird von verschiedenen Befehls- und Datenpuffern, Dekodiereinheiten, Hardware-Verzweigungsvorhersageeinheiten, Befehlsneuordnungseinheiten und Cache-Speichern der ersten, zweiten und dritten Ebene eingenommen. Alle diese Hardwareeinheiten werden benötigt, um die Ausführung einiger Befehlsthreads zu beschleunigen, indem sie auf Prozessorkernebene parallelisiert werden.

Die Ausführungseinheiten selbst nehmen in einem Universalprozessor relativ wenig Platz ein.

Bei einem Grafikprozessor hingegen wird der Hauptbereich von zahlreichen Ausführungseinheiten eingenommen, was die gleichzeitige Verarbeitung mehrerer tausend Befehlsthreads ermöglicht.

Wir können sagen, dass GPUs im Gegensatz zu modernen CPUs für parallele Berechnungen mit einer Vielzahl von Rechenoperationen ausgelegt sind.

Es ist möglich, die Rechenleistung von GPUs für nichtgrafische Aufgaben zu nutzen, allerdings nur, wenn das zu lösende Problem die Möglichkeit bietet, Algorithmen über Hunderte von in der GPU verfügbaren Ausführungseinheiten hinweg zu parallelisieren. Insbesondere GPU-Berechnungen zeigen hervorragende Ergebnisse, wenn dieselbe Abfolge mathematischer Operationen auf eine große Datenmenge angewendet wird. In diesem Fall werden die besten Ergebnisse erzielt, wenn das Verhältnis der Anzahl der Rechenbefehle zur Anzahl der Speicherzugriffe ausreichend groß ist. Dieser Vorgang stellt weniger Anforderungen an die Ausführungskontrolle und erfordert keinen großen Cache-Speicher.

Es gibt viele Beispiele für wissenschaftliche Berechnungen, bei denen der Vorteil der GPU gegenüber der CPU hinsichtlich der Recheneffizienz unbestreitbar ist. Somit sind viele wissenschaftliche Anwendungen in der molekularen Modellierung, Gasdynamik, Fluiddynamik und anderen perfekt für Berechnungen auf der GPU geeignet.

Wenn also der Algorithmus zur Lösung eines Problems in Tausende einzelner Threads parallelisiert werden kann, kann die Effizienz der Lösung eines solchen Problems mit einer GPU höher sein als die Lösung mit nur einem Allzweckprozessor. Allerdings kann man die Lösung eines Problems nicht so einfach von der CPU auf die GPU übertragen, schon allein deshalb, weil CPU und GPU unterschiedliche Befehle verwenden. Das heißt, wenn ein Programm für eine Lösung auf einer CPU geschrieben wird, wird der x86-Befehlssatz verwendet (oder ein Befehlssatz, der mit einer bestimmten Prozessorarchitektur kompatibel ist), aber für die GPU werden völlig andere Befehlssätze verwendet, die wiederum berücksichtigt werden Berücksichtigen Sie dessen Architektur und Fähigkeiten. Bei der Entwicklung moderner 3D-Spiele kommen die DirectX- und OpenGL-APIs zum Einsatz, die es Programmierern ermöglichen, mit Shadern und Texturen zu arbeiten. Allerdings ist die Verwendung der DirectX- und OpenGL-APIs für nichtgrafisches Computing auf der GPU nicht die beste Option.

NVIDIA CUDA und AMD APP

Aus diesem Grund entstand der BrookGPU-Compiler, als die ersten Versuche begannen, nichtgrafisches Computing auf der GPU (General Purpose GPU, GPGPU) zu implementieren. Vor seiner Erstellung mussten Entwickler über die OpenGL- oder Direct3D-Grafik-API auf Grafikkartenressourcen zugreifen, was den Programmierprozess erheblich erschwerte, da spezifische Kenntnisse erforderlich waren – sie mussten die Prinzipien der Arbeit mit 3D-Objekten (Shader, Texturen usw.) erlernen. ). Dies war der Grund für den sehr begrenzten Einsatz von GPGPU in Softwareprodukten. BrookGPU ist zu einer Art „Übersetzer“ geworden. Diese Streaming-Erweiterungen der C-Sprache verbargen die 3D-API vor Programmierern, und bei deren Verwendung waren Kenntnisse in der 3D-Programmierung praktisch nicht mehr erforderlich. Die Rechenleistung von Grafikkarten steht Programmierern in Form eines zusätzlichen Coprozessors für parallele Berechnungen zur Verfügung. Der BrookGPU-Compiler verarbeitete die Datei mit C-Code und Erweiterungen und erstellte Code, der an eine Bibliothek mit DirectX- oder OpenGL-Unterstützung gebunden ist.

Vor allem dank BrookGPU haben NVIDIA und ATI (jetzt AMD) auf die neue Technologie des Allzweck-Computing auf GPUs aufmerksam gemacht und mit der Entwicklung eigener Implementierungen begonnen, die einen direkten und transparenteren Zugriff auf die Recheneinheiten von 3D-Beschleunigern ermöglichen.

Aus diesem Grund hat NVIDIA eine Hardware- und Softwarearchitektur für paralleles Computing entwickelt, CUDA (Compute Unified Device Architecture). Die CUDA-Architektur ermöglicht Nicht-Grafik-Computing auf NVIDIA-GPUs.

Die Veröffentlichung der öffentlichen Betaversion des CUDA SDK erfolgte im Februar 2007. Die CUDA-API basiert auf einem vereinfachten Dialekt der C-Sprache. Die CUDA SDK-Architektur ermöglicht es Programmierern, Algorithmen zu implementieren, die auf NVIDIA-GPUs laufen und spezielle Funktionen in den C-Programmtext einbinden. Um Code erfolgreich in diese Sprache zu übersetzen, enthält das CUDA SDK einen eigenen Sycompiler Befehlszeile nvcc von NVIDIA.

CUDA ist plattformübergreifend Software für Betriebssysteme wie Linux, Mac OS X und Windows.

AMD (ATI) hat auch eine eigene Version der GPGPU-Technologie entwickelt, die früher ATI Stream und jetzt AMD Accelerated Parallel Processing (APP) hieß. Die AMD APP basiert auf dem offenen Industriestandard OpenCL (Open Computing Language). Der OpenCL-Standard bietet Parallelität auf Befehls- und Datenebene und ist eine Implementierung der GPGPU-Technik. Es handelt sich um einen völlig offenen Standard und die Nutzung ist lizenzgebührenfrei. Beachten Sie jedoch, dass AMD APP und NVIDIA CUDA nicht miteinander kompatibel sind. letzte Version NVIDIA CUDA unterstützt auch OpenCL.

Testen von GPGPU in Videokonvertern

Wir haben also herausgefunden, dass die CUDA-Technologie zur Implementierung von GPGPU auf NVIDIA-GPUs verwendet wird und die APP-API auf AMD-GPUs verwendet wird. Wie bereits erwähnt, ist der Einsatz von nicht-grafischem Computing auf der GPU nur dann sinnvoll, wenn das zu lösende Problem in viele Threads parallelisiert werden kann. Die meisten Benutzeranwendungen erfüllen dieses Kriterium jedoch nicht. Es gibt jedoch einige Ausnahmen. Beispielsweise unterstützen die meisten modernen Videokonverter die Möglichkeit, Computer auf NVIDIA- und AMD-GPUs zu verwenden.

Um herauszufinden, wie effizient GPU-Computing in benutzerdefinierten Videokonvertern eingesetzt wird, haben wir drei beliebte Lösungen ausgewählt: Xilisoft Video Converter Ultimate 7.7.2, Wondershare Video Converter Ultimate 6.0.3.2 und Movavi Video Converter 10.2.1. Diese Konverter unterstützen die Möglichkeit, NVIDIA- und AMD-GPUs zu verwenden. Sie können diese Funktion in den Videokonvertereinstellungen deaktivieren, um die Effektivität der Verwendung der GPU zu bewerten.

Für die Videokonvertierung haben wir drei verschiedene Videos verwendet.

Das erste Video war 3 Minuten 35 Sekunden lang und 1,05 GB groß. Es wurde im MKV-Datenspeicherformat (Container) aufgezeichnet und hatte die folgenden Eigenschaften:

  • Video:
    • Format - MPEG4-Video (H264),
    • Auflösung - 1920*um*1080,
    • Bitratenmodus - Variabel,
    • durchschnittliche Videobitrate - 42,1 Mbit/s,
    • maximale Videobitrate - 59,1 Mbit/s,
    • Bildrate - 25 fps;
  • Audio:
    • Format - MPEG-1 Audio,
    • Audio-Bitrate - 128 Kbit/s,
    • Anzahl der Kanäle - 2,

Das zweite Video hatte eine Dauer von 4 Minuten 25 Sekunden und eine Größe von 1,98 GB. Es wurde im MPG-Datenspeicherformat (Container) aufgezeichnet und wies folgende Eigenschaften auf:

  • Video:
    • Format - MPEG-PS (MPEG2-Video),
    • Auflösung - 1920*um*1080,
    • Bitratenmodus – Variabel.
    • durchschnittliche Videobitrate - 62,5 Mbit/s,
    • maximale Videobitrate - 100 Mbit/s,
    • Bildrate - 25 fps;
  • Audio:
    • Format - MPEG-1 Audio,
    • Audio-Bitrate - 384 Kbit/s,
    • Anzahl der Kanäle - 2,

Das dritte Video hatte eine Dauer von 3 Minuten 47 Sekunden und eine Größe von 197 MB. Es wurde im MOV-Datenspeicherformat (Container) geschrieben und hatte die folgenden Eigenschaften:

  • Video:
    • Format - MPEG4-Video (H264),
    • Auflösung - 1920*um*1080,
    • Bitratenmodus - Variabel,
    • Videobitrate - 7024 Kbit/s,
    • Bildrate - 25 fps;
  • Audio:
    • Format - AAC,
    • Audio-Bitrate - 256 Kbit/s,
    • Anzahl der Kanäle - 2,
    • Abtastfrequenz - 48 kHz.

Alle drei Testvideos wurden mit Videokonvertern in das MP4-Datenspeicherformat (H.264-Codec) zum Ansehen konvertiert iPad-Tablet 2. Die Auflösung der ausgegebenen Videodatei betrug 1280*um*720.

Bitte beachten Sie, dass wir nicht in allen drei Konvertern exakt die gleichen Konvertierungseinstellungen verwendet haben. Aus diesem Grund ist es falsch, die Effizienz von Videokonvertern selbst anhand der Konvertierungszeit zu vergleichen. Daher wurde im Videokonverter Xilisoft Video Converter Ultimate 7.7.2 die iPad 2-Voreinstellung - H.264 HD Video für die Konvertierung verwendet. Diese Voreinstellung verwendet die folgenden Kodierungseinstellungen:

  • Codec - MPEG4 (H.264);
  • Auflösung - 1280*um*720;
  • Bildrate - 29,97 fps;
  • Videobitrate - 5210 Kbit/s;
  • Audio-Codec – AAC;
  • Audio-Bitrate - 128 Kbit/s;
  • Anzahl der Kanäle - 2;
  • Abtastfrequenz - 48 kHz.

Wondershare Video Converter Ultimate 6.0.3.2 verwendete die iPad 2-Voreinstellung mit den folgenden zusätzlichen Einstellungen:

  • Codec - MPEG4 (H.264);
  • Auflösung - 1280*um*720;
  • Bildrate - 30 fps;
  • Videobitrate - 5000 Kbit/s;
  • Audio-Codec – AAC;
  • Audio-Bitrate - 128 Kbit/s;
  • Anzahl der Kanäle - 2;
  • Abtastfrequenz - 48 kHz.

Movavi Video Converter 10.2.1 verwendete die iPad-Voreinstellung (1280*um*720, H.264) (*.mp4) mit den folgenden zusätzlichen Einstellungen:

  • Videoformat - H.264;
  • Auflösung - 1280*um*720;
  • Bildrate - 30 fps;
  • Videobitrate - 2500 Kbit/s;
  • Audio-Codec – AAC;
  • Audio-Bitrate - 128 Kbit/s;
  • Anzahl der Kanäle - 2;
  • Abtastfrequenz - 44,1 kHz.

Jedes Quellvideo wurde auf jedem der Videokonverter fünfmal konvertiert, wobei sowohl die GPU als auch nur die CPU verwendet wurden. Nach jeder Konvertierung wurde der Computer neu gestartet.

Infolgedessen wurde jedes Video in jedem Videokonverter zehnmal konvertiert. Um dies zu automatisieren Routinearbeit wurde geschrieben besonderer Nutzen Mit grafische Oberfläche, sodass Sie den Testprozess vollständig automatisieren können.

Prüfstandkonfiguration

Der Prüfstand hatte folgenden Aufbau:

  • Prozessor - Intel Core Prozessor i7-3770K;
  • Hauptplatine- Gigabyte GA-Z77X-UD5H;
  • Chipsatz Hauptplatine- Intel Z77 Express;
  • Speicher - DDR3-1600;
  • Speicherkapazität - 8 GB (zwei GEIL-Module mit je 4 GB);
  • Speicherbetriebsmodus - Dual-Channel;
  • Grafikkarte - NVIDIA GeForce GTX 660Ti (Grafiktreiber 314.07);
  • Laufwerk - Intel SSD 520 (240 GB).

Auf dem Stand wurde das Betriebssystem Windows 7 Ultimate (64-Bit) installiert.

Zunächst haben wir den Prozessor und alle anderen Systemkomponenten im Normalmodus getestet. Gleichzeitig lief der Intel Core i7-3770K-Prozessor bei aktiviertem Turbo-Boost-Modus mit einer Standardfrequenz von 3,5 GHz (die maximale Prozessorfrequenz im Turbo-Boost-Modus beträgt 3,9 GHz).

Anschließend wiederholten wir den Testvorgang, wobei der Prozessor jedoch auf eine feste Frequenz von 4,5 GHz übertaktet wurde (ohne den Turbo-Boost-Modus zu verwenden). Dadurch konnte die Abhängigkeit der Konvertierungsgeschwindigkeit von der Prozessorfrequenz (CPU) ermittelt werden.

In der nächsten Testphase kehrten wir zu den Standardprozessoreinstellungen zurück und wiederholten Tests mit anderen Grafikkarten:

  • NVIDIA GeForce GTX 280 (Treiber 314.07);
  • NVIDIA GeForce GTX 460 (Treiber 314.07);
  • AMD Radeon HD6850 (Treiber 13.1).

Somit wurde die Videokonvertierung auf vier Grafikkarten unterschiedlicher Architektur durchgeführt.

Die ältere NVIDIA GeForce 660Ti-Grafikkarte basiert auf einem gleichnamigen Grafikprozessor mit der Codierung GK104 (Kepler-Architektur), der mit einer 28-nm-Prozesstechnologie hergestellt wird. Das GPU enthält 3,54 Milliarden Transistoren und die Kristallfläche beträgt 294 mm2.

Denken Sie daran, dass die GK104-GPU vier Cluster umfasst grafische Bearbeitung(Graphics Processing Clusters, GPC). GPC-Cluster sind unabhängige Geräte innerhalb des Prozessors und können als separate Geräte betrieben werden, da sie über alle erforderlichen Ressourcen verfügen: Rasterer, Geometrie-Engines und Texturmodule.

Jeder dieser Cluster verfügt über zwei SMX-Multiprozessoren (Streaming Multiprocessor), aber im GK104-Prozessor ist ein Multiprozessor in einem der Cluster blockiert, sodass es insgesamt sieben SMX-Multiprozessoren gibt.

Jeder SMX-Streaming-Multiprozessor enthält 192 Streaming-Rechenkerne (CUDA-Kerne), sodass der GK104-Prozessor insgesamt über 1344 CUDA-Kerne verfügt. Darüber hinaus enthält jeder SMX-Multiprozessor 16 Textureinheiten (TMU), 32 Spezialfunktionseinheiten (SFU), 32 Load-Store-Einheiten (LSU), eine PolyMorph-Engine und vieles mehr.

Die GeForce GTX 460 basiert auf einem GPU-codierten GF104 basierend auf der Fermi-Architektur. Dieser Prozessor wird mit einer 40-nm-Prozesstechnologie hergestellt und enthält etwa 1,95 Milliarden Transistoren.

Die GF104-GPU umfasst zwei GPC-Grafikverarbeitungscluster. Jeder von ihnen verfügt über vier SM-Streaming-Multiprozessoren, aber im GF104-Prozessor in einem der Cluster ist ein Multiprozessor gesperrt, sodass es nur sieben SM-Multiprozessoren gibt.

Jeder SM-Streaming-Multiprozessor enthält 48 Streaming-Rechenkerne (CUDA-Kerne), sodass der GK104-Prozessor insgesamt über 336 CUDA-Kerne verfügt. Darüber hinaus enthält jeder SM-Multiprozessor acht Textureinheiten (TMU), acht Spezialfunktionseinheiten (SFU), 16 Load-Store-Einheiten (LSU), eine PolyMorph-Engine und vieles mehr.

Die GeForce GTX 280 GPU ist Teil der zweiten Generation der Unified GPU Architecture von NVIDIA und unterscheidet sich in ihrer Architektur stark von Fermi und Kepler.

Die GeForce GTX 280 GPU besteht aus Texture Processing Clusters (TPCs), die zwar ähnlich sind, sich aber stark von den GPC-Grafikverarbeitungsclustern in den Fermi- und Kepler-Architekturen unterscheiden. Insgesamt gibt es zehn solcher Cluster im GeForce-GTX-280-Prozessor. Jeder TPC-Cluster umfasst drei SM-Streaming-Multiprozessoren und acht Textur-Sampling- und Filtereinheiten (TMU). Jeder Multiprozessor besteht aus acht Stream-Prozessoren (SP). Multiprozessoren enthalten auch Blöcke zum Abtasten und Filtern von Texturdaten, die sowohl für Grafiken als auch für einige Rechenaufgaben verwendet werden.

So gibt es in einem TPC-Cluster 24 Stream-Prozessoren, in der GeForce GTX 280 GPU sind es bereits 240 davon.

Die zusammenfassenden Eigenschaften der im Test verwendeten Grafikkarten auf NVIDIA-GPUs sind in der Tabelle aufgeführt.

Die folgende Tabelle enthält keine AMD Radeon HD6850-Grafikkarte, was völlig natürlich ist technische Spezifikationen Es ist schwer, es mit NVIDIA-Grafikkarten zu vergleichen. Daher werden wir es gesondert betrachten.

Die AMD Radeon HD6850 GPU mit dem Codenamen Barts wird mit einer 40-nm-Prozesstechnologie hergestellt und enthält 1,7 Milliarden Transistoren.

Die AMD Radeon HD6850-Prozessorarchitektur ist eine einheitliche Architektur mit einer Reihe gemeinsamer Prozessoren für die Streaming-Verarbeitung mehrerer Datentypen.

Der AMD Radeon HD6850 Prozessor besteht aus 12 SIMD-Kernen, von denen jeder 16 superskalare Stream-Prozessoreinheiten und vier Textureinheiten enthält. Jeder superskalare Stream-Prozessor enthält fünf Allzweck-Stream-Prozessoren. Insgesamt verfügt die AMD Radeon HD6850 GPU also über 12*um*16*um*5=960 Universal-Stream-Prozessoren.

Die GPU-Frequenz der AMD Radeon HD6850-Grafikkarte beträgt 775 MHz und die effektive GDDR5-Speicherfrequenz beträgt 4000 MHz. Die Speicherkapazität beträgt 1024 MB.

Testergebnisse

Schauen wir uns also die Testergebnisse an. Beginnen wir mit dem ersten Test, bei Verwendung der NVIDIA GeForce GTX 660Ti-Grafikkarte und im normalen Betriebsmodus Intel-Prozessor Core i7-3770K.

In Abb. Die Abbildungen 1-3 zeigen die Ergebnisse der Konvertierung von drei Testvideos mit drei Konvertern im Modus mit und ohne GPU.

Wie aus den Testergebnissen hervorgeht, ist der Effekt der Verwendung der GPU offensichtlich. Für Xilisoft Video Converter Ultimate 7.7.2 reduziert sich die Konvertierungszeit bei Verwendung einer GPU um 14, 9 bzw. 19 % für das erste, zweite und dritte Video.

Beim Wondershare Video Converter Ultimate 6.0.32 reduziert die Verwendung einer GPU die Konvertierungszeit um 10 %, 13 % bzw. 23 % für das erste, zweite und dritte Video.

Der Konverter, der am meisten von der Verwendung eines Grafikprozessors profitiert, ist jedoch Movavi Video Converter 10.2.1. Für das erste, zweite und dritte Video beträgt die Reduzierung der Konvertierungszeit 64, 81 bzw. 41 %.

Es ist klar, dass der Nutzen der Verwendung einer GPU sowohl vom Quellvideo als auch von den Videokonvertierungseinstellungen abhängt, was unsere Ergebnisse tatsächlich belegen.

Sehen wir uns nun an, wie hoch der Zeitgewinn bei der Umwandlung ist, wenn der Intel Core i7-3770K-Prozessor auf 4,5 GHz übertaktet wird. Geht man davon aus, dass im Normalmodus alle Prozessorkerne bei der Konvertierung belastet werden und im Turbo-Boost-Modus mit einer Frequenz von 3,7 GHz arbeiten, dann entspricht eine Erhöhung der Frequenz auf 4,5 GHz einer Frequenzübertaktung von 22 %.

In Abb. In Abb. 4-6 zeigen die Ergebnisse der Konvertierung von drei Testvideos beim Übertakten des Prozessors in den Modi mit und ohne Grafikprozessor. In diesem Fall ermöglicht der Einsatz eines Grafikprozessors einen Zeitgewinn bei der Konvertierung.

Beim Videokonverter Xilisoft Video Converter Ultimate 7.7.2 wird bei Verwendung einer GPU die Konvertierungszeit für das erste, zweite und dritte Video um 15, 9 bzw. 20 % reduziert.

Beim Wondershare Video Converter Ultimate 6.0.32 kann die Verwendung einer GPU die Konvertierungszeit für das erste, zweite und dritte Video um 10, 10 bzw. 20 % verkürzen.

Für Movavi Video Converter 10.2.1 kann die Verwendung eines Grafikprozessors die Konvertierungszeit um 59, 81 bzw. 40 % verkürzen.

Natürlich ist es interessant zu sehen, wie CPU-Übertaktung die Konvertierungszeiten mit und ohne GPU verkürzen kann.

In Abb. Die Abbildungen 7-9 zeigen die Ergebnisse des Vergleichs der Zeit zum Konvertieren von Videos ohne Verwendung eines Grafikprozessors im normalen Prozessorbetriebsmodus und im übertakteten Modus. Da in diesem Fall die Konvertierung nur von der CPU ohne Berechnungen auf der GPU durchgeführt wird, liegt es auf der Hand, dass eine Erhöhung der Prozessortaktfrequenz zu einer Verkürzung der Konvertierungszeit (Erhöhung der Konvertierungsgeschwindigkeit) führt. Ebenso offensichtlich ist, dass die Reduzierung der Konvertierungsgeschwindigkeit bei allen Testvideos ungefähr gleich sein sollte. So wird beim Videokonverter Xilisoft Video Converter Ultimate 7.7.2 beim Übertakten des Prozessors die Konvertierungszeit für das erste, zweite und dritte Video um 9, 11 bzw. 9 % reduziert. Für Wondershare Video Converter Ultimate 6.0.32 wird die Konvertierungszeit für das erste, zweite und dritte Video um 9, 9 bzw. 10 % reduziert. Nun, für den Videokonverter Movavi Video Converter 10.2.1 wird die Konvertierungszeit um 13, 12 bzw. 12 % reduziert.

Bei einer Übertaktung der Prozessorfrequenz um 20 % verkürzt sich die Konvertierungszeit also um ca. 10 %.

Vergleichen wir die Zeit zum Konvertieren von Videos mit einem Grafikprozessor im normalen Prozessormodus und im Übertaktungsmodus (Abb. 10-12).

Beim Videokonverter Xilisoft Video Converter Ultimate 7.7.2 wird beim Übertakten des Prozessors die Konvertierungszeit für das erste, zweite und dritte Video um 10, 10 bzw. 9 % reduziert. Für Wondershare Video Converter Ultimate 6.0.32 wird die Konvertierungszeit für das erste, zweite und dritte Video um 9, 6 bzw. 5 % reduziert. Nun, für den Videokonverter Movavi Video Converter 10.2.1 wird die Konvertierungszeit um 0,2, 10 bzw. 10 % reduziert.

Wie Sie sehen können, ist bei den Konvertern Xilisoft Video Converter Ultimate 7.7.2 und Wondershare Video Converter Ultimate 6.0.32 die Verkürzung der Konvertierungszeit beim Übertakten des Prozessors sowohl bei Verwendung eines Grafikprozessors als auch ohne Verwendung ungefähr gleich logisch, da diese Konverter das GPU-Computing nicht sehr effizient nutzen. Beim Movavi Video Converter 10.2.1, der GPU-Computing effektiv nutzt, hat die Übertaktung des Prozessors im GPU-Computing-Modus jedoch kaum Auswirkungen auf die Verkürzung der Konvertierungszeit, was auch verständlich ist, da in diesem Fall die Hauptlast auf dem Grafikprozessor liegt .

Schauen wir uns nun die Testergebnisse mit verschiedenen Grafikkarten an.

Es scheint, dass die Videokonvertierung bei Verwendung eines Grafikprozessors umso effektiver sein sollte, je leistungsfähiger die Grafikkarte und je mehr CUDA-Kerne (oder Universal-Stream-Prozessoren für AMD-Grafikkarten) im Grafikprozessor sind. Aber in der Praxis klappt das nicht ganz so.

Bei Grafikkarten, die auf NVIDIA-GPUs basieren, ist die Situation wie folgt. Bei Verwendung der Konverter Xilisoft Video Converter Ultimate 7.7.2 und Wondershare Video Converter Ultimate 6.0.32 hängt die Konvertierungszeit praktisch in keiner Weise vom Typ der verwendeten Grafikkarte ab. Das ist für NVIDIA-Grafikkarten GeForce GTX 660Ti, NVIDIA GeForce GTX 460 und NVIDIA GeForce GTX 280 im GPU-Computing-Modus ist die Konvertierungszeit gleich (Abb. 13-15).

Reis. 1. Ergebnisse der ersten Konvertierung
Testvideo im Normalmodus
Prozessorbetrieb

Prozessor auf Grafikkarten im GPU-Modus

Reis. 14. Ergebnisse des Vergleichs der Konvertierungszeit des zweiten Videos

Reis. 15. Ergebnisse des Vergleichs der Konvertierungszeit des dritten Videos
auf verschiedenen Grafikkarten im GPU-Modus

Dies kann nur durch die Tatsache erklärt werden, dass der in den Konvertern Xilisoft Video Converter Ultimate 7.7.2 und Wondershare Video Converter Ultimate 6.0.32 implementierte GPU-Berechnungsalgorithmus einfach ineffektiv ist und nicht die aktive Nutzung aller Grafikkerne ermöglicht. Dies erklärt übrigens genau die Tatsache, dass bei diesen Konvertern der Unterschied in der Konvertierungszeit zwischen den Modi mit und ohne GPU-Nutzung gering ist.

In Movavi Video Converter 10.2.1 ist die Situation etwas anders. Wie wir uns erinnern, ist dieser Konverter in der Lage, GPU-Berechnungen sehr effizient zu nutzen, und daher hängt die Konvertierungszeit im GPU-Modus vom Typ der verwendeten Grafikkarte ab.

Aber mit der AMD Radeon HD 6850 Grafikkarte ist alles wie gewohnt. Entweder ist der Grafikkartentreiber „schief“ oder die in den Konvertern implementierten Algorithmen müssen erheblich verbessert werden, aber wenn GPU-Computing verwendet wird, verbessern sich die Ergebnisse entweder nicht oder werden schlechter.

Genauer gesagt stellt sich die Situation wie folgt dar. Wenn für Xilisoft Video Converter Ultimate 7.7.2 eine GPU zum Konvertieren des ersten Testvideos verwendet wird, erhöht sich die Konvertierungszeit um 43 % und bei der Konvertierung des zweiten Videos um 66 %.

Darüber hinaus zeichnet sich Xilisoft Video Converter Ultimate 7.7.2 auch durch instabile Ergebnisse aus. Die Schwankung der Konvertierungszeit kann bis zu 40 % betragen! Deshalb haben wir alle Tests zehnmal wiederholt und das Durchschnittsergebnis berechnet.

Aber für Wondershare Video Converter Ultimate 6.0.32 und Movavi Video Converter 10.2.1 ändert sich die Konvertierungszeit überhaupt nicht, wenn eine GPU zum Konvertieren aller drei Videos verwendet wird! Es ist wahrscheinlich, dass Wondershare Video Converter Ultimate 6.0.32 und Movavi Video Converter 10.2.1 bei der Konvertierung entweder keine AMD APP-Technologie verwenden oder der AMD-Videotreiber einfach „schief“ ist, wodurch die AMD APP-Technologie nicht funktioniert .

Schlussfolgerungen

Basierend auf den Tests können die folgenden wichtigen Schlussfolgerungen gezogen werden. Moderne Videokonverter können tatsächlich GPU-Rechentechnologie nutzen, was eine höhere Konvertierungsgeschwindigkeit ermöglicht. Dies bedeutet jedoch nicht, dass alle Berechnungen vollständig auf die GPU übertragen werden und die CPU ungenutzt bleibt. Wie Tests zeigen, bleibt der Zentralprozessor beim Einsatz der GPGPU-Technologie ausgelastet, was bedeutet, dass der Einsatz leistungsstarker Multi-Core-Zentralprozessoren in Systemen zur Videokonvertierung weiterhin relevant bleibt. Die Ausnahme von dieser Regel ist die AMD APP-Technologie auf AMD-GPUs. Beispielsweise wird bei der Verwendung von Xilisoft Video Converter Ultimate 7.7.2 mit aktivierter AMD APP-Technologie zwar die Belastung der CPU reduziert, dies führt jedoch dazu, dass die Konvertierungszeit nicht verkürzt, sondern im Gegenteil erhöht wird.

Wenn wir im Allgemeinen über die Konvertierung von Videos unter zusätzlicher Verwendung eines Grafikprozessors sprechen, ist es zur Lösung dieses Problems ratsam, Grafikkarten mit NVIDIA-GPUs zu verwenden. Wie die Praxis zeigt, kann nur in diesem Fall eine Steigerung der Conversion-Geschwindigkeit erreicht werden. Darüber hinaus müssen Sie bedenken, dass die tatsächliche Steigerung der Conversion-Geschwindigkeit von vielen Faktoren abhängt. Dies sind die Eingabe- und Ausgabevideoformate und natürlich der Videokonverter selbst. Die Konverter Xilisoft Video Converter Ultimate 7.7.2 und Wondershare Video Converter Ultimate 6.0.32 sind für diese Aufgabe nicht geeignet, aber der Konverter und Movavi Video Converter 10.2.1 können die Fähigkeiten der NVIDIA-GPU sehr effektiv nutzen.

Grafikkarten auf AMD-GPUs sollten überhaupt nicht für Videokonvertierungsaufgaben verwendet werden. Im besten Fall führt dies zu keiner Erhöhung der Konvertierungsgeschwindigkeit, im schlimmsten Fall kann es zu einer Verringerung kommen.

Einer der meisten versteckte Funktionen, in den letzten Windows Update 10 ist die Möglichkeit zu überprüfen, welche Anwendungen Ihren Grafikprozessor (GPU) verwenden. Wenn Sie jemals den Task-Manager geöffnet haben, haben Sie sich wahrscheinlich Ihre CPU-Auslastung angesehen, um zu sehen, welche Apps die meiste CPU verbrauchen. IN letzte Aktualisierung eine ähnliche Funktion hinzugefügt, jedoch für GPU-Grafikprozessoren. Dies hilft Ihnen zu verstehen, wie intensiv Ihre Software und Spiele Ihre GPU beanspruchen, ohne Software von Drittanbietern herunterladen zu müssen. Es gibt eine weitere interessante Funktion, die dabei hilft, Ihre CPU auf die GPU zu verlagern. Ich empfehle zu lesen, wie man wählt.

Warum habe ich im Task-Manager keine GPU?

Leider sind nicht alle Grafikkarten in der Lage, dem Windows-System die zum Auslesen der GPU erforderlichen Statistiken bereitzustellen. Natürlich können Sie diese Technologie schnell mit dem DirectX-Diagnosetool überprüfen.

  1. Klicken " Start" und schreibe in die Suche dxdiag um das DirectX-Diagnosetool auszuführen.
  2. Gehen Sie zur „Registerkarte“ Bildschirm", rechts in der Spalte „ Fahrer"du musst haben WDDM-Modell mehr als 2.0 Version für die Verwendung von GPU-Grafiken im Task-Manager.

Aktivieren Sie das GPU-Diagramm im Task-Manager

Um die GPU-Nutzung für jede Anwendung anzuzeigen, müssen Sie den Task-Manager öffnen.

  • Drücken Sie eine Tastenkombination Strg + Umschalt + Esc um den Task-Manager zu öffnen.
  • Klicken Sie im Task-Manager mit der rechten Maustaste auf das „leere“ Feld Name" und überprüfen Sie es im Dropdown-Menü GPU Sie können auch notieren GPU-Kern um zu sehen, welche Programme es verwenden.
  • Nun sind im Task-Manager rechts der GPU-Graph und der GPU-Kern sichtbar.


Gesamte GPU-Leistung anzeigen

Sie können verfolgen allgemeiner Gebrauch GPU, um es unter hoher Last zu überwachen und zu analysieren. In diesem Fall sehen Sie alles, was Sie brauchen, im Reiter „ Leistung" durch die Auswahl Grafikprozessor.


Jedes GPU-Element wird in einzelne Diagramme unterteilt, um Ihnen noch mehr Einblick in die Nutzung Ihrer GPU zu geben. Wenn Sie die angezeigten Diagramme ändern möchten, können Sie auf den kleinen Pfeil neben dem Namen jeder Aufgabe klicken. Auf diesem Bildschirm werden auch die Version und das Datum Ihres Treibers angezeigt. Dies ist eine gute Alternative zur Verwendung von DXDiag oder dem Geräte-Manager.


GPU-Computing

Die CUDA-Technologie (Compute Unified Device Architecture) ist eine Software- und Hardwarearchitektur, die das Rechnen mit NVIDIA-Grafikprozessoren ermöglicht, die die GPGPU-Technologie (Random Computing on Video Cards) unterstützen. Die CUDA-Architektur erschien erstmals mit der Veröffentlichung des NVIDIA-Chips der achten Generation – G80 – auf dem Markt und ist in allen nachfolgenden Serien von Grafikchips enthalten, die in den Beschleunigerfamilien GeForce, ION, Quadro und Tesla zum Einsatz kommen.

Mit dem CUDA SDK können Programmierer Algorithmen, die auf NVIDIA-GPUs ausgeführt werden können, in einem speziellen vereinfachten Dialekt der Programmiersprache C implementieren und spezielle Funktionen in den Text eines C-Programms einbinden. CUDA gibt dem Entwickler die Möglichkeit, den Zugriff auf eine Reihe von Anweisungen nach eigenem Ermessen zu organisieren Grafikbeschleuniger und verwalten Sie seinen Speicher, organisieren Sie komplexe parallele Berechnungen darauf.

Geschichte

Im Jahr 2003 nahmen Intel und AMD an einem gemeinsamen Rennen um die meisten teil leistungsstarker Prozessor. Im Laufe mehrerer Jahre als Ergebnis dieses Rennens Taktraten wuchs deutlich, insbesondere nach der Veröffentlichung Intel Pentium 4.

Nach der Erhöhung der Taktfrequenzen (zwischen 2001 und 2003 verdoppelte sich die Taktfrequenz des Pentium 4 von 1,5 auf 3 GHz) mussten sich Nutzer mit Zehntel-Gigahertz begnügen, die von den Herstellern auf den Markt gebracht wurden (von 2003 bis). 2005, Taktfrequenzen um 3 auf 3,8 GHz erhöht).

Architekturen, die für hohe Taktfrequenzen optimiert waren, wie beispielsweise Prescott, begannen ebenfalls auf Schwierigkeiten zu stoßen, und zwar nicht nur in der Produktion. Chiphersteller stehen vor der Herausforderung, die Gesetze der Physik zu überwinden. Einige Analysten sagten sogar voraus, dass das Mooresche Gesetz nicht mehr gelten würde. Aber das ist nicht passiert. Die ursprüngliche Bedeutung des Gesetzes wird oft verfälscht, betrifft aber die Anzahl der Transistoren auf der Oberfläche des Siliziumkerns. Lange Zeit ging mit einer Erhöhung der Transistoranzahl einer CPU eine entsprechende Leistungssteigerung einher – was zu einer Bedeutungsverzerrung führte. Doch dann wurde die Situation komplizierter. Die Entwickler der CPU-Architektur näherten sich dem Gesetz der Wachstumsreduzierung: Die Anzahl der Transistoren, die für die erforderliche Leistungssteigerung hinzugefügt werden mussten, wurde immer größer und führte in eine Sackgasse.

Der Grund, warum GPU-Hersteller nicht mit diesem Problem konfrontiert sind, ist ganz einfach: CPUs sind auf Leistung ausgelegt maximale Performance auf einem Befehlsstrom, der verschiedene Daten (sowohl Ganzzahlen als auch Gleitkommazahlen) verarbeitet, wahlfreien Speicherzugriff durchführt usw. Bisher versuchen Entwickler, eine größere Parallelität der Anweisungen zu erreichen, also möglichst viele Anweisungen parallel auszuführen. Beim Pentium erschien beispielsweise die superskalare Ausführung, bei der es unter bestimmten Bedingungen möglich war, zwei Befehle pro Taktzyklus auszuführen. Pentium Pro erhielt Anweisungen außerhalb der Reihenfolge, wodurch der Betrieb von Recheneinheiten optimiert werden konnte. Das Problem besteht darin, dass es offensichtliche Einschränkungen bei der parallelen Ausführung eines sequentiellen Befehlsstroms gibt, sodass eine blinde Erhöhung der Anzahl der Recheneinheiten keinen Vorteil bringt, da diese die meiste Zeit noch im Leerlauf sind.

Die Bedienung der GPU ist relativ einfach. Dabei wird auf der einen Seite eine Gruppe von Polygonen genommen und auf der anderen Seite eine Gruppe von Pixeln erzeugt. Polygone und Pixel sind unabhängig voneinander und können daher parallel verarbeitet werden. Somit ist es in einer GPU möglich, einen großen Teil des Kristalls in Recheneinheiten zu unterteilen, die im Gegensatz zur CPU tatsächlich genutzt werden.

Die GPU unterscheidet sich nicht nur in dieser Hinsicht von der CPU. Der Speicherzugriff in der GPU ist sehr gekoppelt – wenn ein Texel gelesen wird, wird nach einigen Taktzyklen das benachbarte Texel gelesen; Wenn ein Pixel aufgezeichnet wird, wird nach einigen Taktzyklen das benachbarte Pixel aufgezeichnet. Durch die intelligente Organisation des Speichers können Sie eine Leistung erzielen, die nahezu theoretisch ist Bandbreite. Dies bedeutet, dass die GPU im Gegensatz zur CPU keinen großen Cache benötigt, da ihre Aufgabe darin besteht, Texturierungsvorgänge zu beschleunigen. Alles, was benötigt wird, sind ein paar Kilobyte mit ein paar Texeln, die in bilinearen und trilinearen Filtern verwendet werden.

Erste Berechnungen auf GPU

Die ersten Versuche solcher Anwendungen beschränkten sich auf die Verwendung bestimmter Hardwarefunktionen wie Rasterung und Z-Pufferung. Doch im laufenden Jahrhundert begann man mit dem Aufkommen von Shadern, Matrixberechnungen zu beschleunigen. Im Jahr 2003 wurde bei SIGGRAPH ein eigener Bereich für GPU-Computing eingerichtet, der den Namen GPGPU (General-Purpose Computation on GPU) erhielt.

Am bekanntesten ist BrookGPU, ein Compiler für die Streaming-Programmiersprache Brook, der für die Durchführung nichtgrafischer Berechnungen auf der GPU entwickelt wurde. Vor seinem Erscheinen wählten Entwickler, die die Fähigkeiten von Videochips für Berechnungen nutzten, eine von zwei gängigen APIs: Direct3D oder OpenGL. Dies schränkte die Verwendung von GPUs erheblich ein, da 3D-Grafiken Shader und Texturen verwenden, über die Spezialisten für parallele Programmierung nicht Bescheid wissen müssen; sie verwenden Threads und Kerne. Brook konnte ihnen die Aufgabe erleichtern. Diese an der Stanford University entwickelten Streaming-Erweiterungen der C-Sprache verbargen die 3D-API vor Programmierern und präsentierten den Videochip als parallelen Coprozessor. Der Compiler verarbeitete die .br-Datei mit C++-Code und Erweiterungen und erzeugte Code, der mit einer DirectX-, OpenGL- oder x86-fähigen Bibliothek verknüpft war.

Das Erscheinen von Brook weckte das Interesse von NVIDIA und ATI und eröffnete anschließend einen ganz neuen Sektor – Parallelcomputer auf Basis von Videochips.

Anschließend schlossen sich einige Forscher des Brook-Projekts dem NVIDIA-Entwicklungsteam an, um eine Hardware-Software-Parallel-Computing-Strategie einzuführen und so neue Marktanteile zu erschließen. Und der Hauptvorteil dieser NVIDIA-Initiative besteht darin, dass Entwickler alle Fähigkeiten ihrer GPUs bis ins kleinste Detail kennen, die Verwendung der Grafik-API nicht erforderlich ist und Sie direkt über den Treiber mit der Hardware arbeiten können. Das Ergebnis der Bemühungen dieses Teams war NVIDIA CUDA.

Anwendungsgebiete paralleler Berechnungen auf GPU

Bei der Übertragung von Berechnungen auf die GPU wird bei vielen Aufgaben eine 5- bis 30-fache Beschleunigung im Vergleich zu schnellen Universalprozessoren erreicht. Am meisten große Zahlen(ca. 100-fache Beschleunigung und noch mehr!) werden mit Code erreicht, der für Berechnungen mit SSE-Blöcken nicht sehr gut geeignet ist, für GPUs aber durchaus praktisch ist.

Dies sind nur einige Beispiele für Beschleunigungen für synthetischen Code auf der GPU im Vergleich zu SSE-vektorisiertem Code auf der CPU (laut NVIDIA):

Fluoreszenzmikroskopie: 12x.

Molekulardynamik (Berechnung nicht gebundener Kräfte): 8–16x;

Elektrostatik (direkte und mehrstufige Coulomb-Summation): 40-120x und 7x.

Eine Tabelle, die NVIDIA in allen Präsentationen anzeigt, zeigt die Geschwindigkeit von GPUs im Verhältnis zu CPUs.

Liste der Hauptanwendungen, in denen GPU-Computing eingesetzt wird: Analyse und Verarbeitung von Bildern und Signalen, physikalische Simulation, Computermathematik, Computerbiologie, Finanzberechnungen, Datenbanken, Dynamik von Gasen und Flüssigkeiten, Kryptographie, adaptive Strahlentherapie, Astronomie, Audioverarbeitung , Bioinformatik, biologische Simulationen, Computer Vision, Data Mining, digitales Kino und Fernsehen, elektromagnetische Simulationen, Geografisches Informationssystem, militärische Anwendungen, Minenplanung, Molekulardynamik, Magnetresonanztomographie (MRT), neuronale Netze, ozeanografische Forschung, Teilchenphysik, Proteinfaltungssimulation, Quantenchemie, Raytracing, Bildgebung, Radar, Reservoirsimulation, künstliche Intelligenz, Satellitendatenanalyse, seismische Erkundung, Chirurgie, Ultraschall, Videokonferenzen.

Vorteile und Einschränkungen von CUDA

Aus der Sicht eines Programmierers ist eine Grafikpipeline eine Sammlung von Verarbeitungsstufen. Der Geometrieblock generiert die Dreiecke und der Rasterisierungsblock generiert die auf dem Monitor angezeigten Pixel. Das traditionelle GPGPU-Programmiermodell sieht folgendermaßen aus:

Um Berechnungen innerhalb dieses Modells auf die GPU zu übertragen, ist ein besonderer Ansatz erforderlich. Selbst die elementweise Addition zweier Vektoren erfordert das Zeichnen der Figur auf dem Bildschirm oder in einem Puffer außerhalb des Bildschirms. Die Figur wird gerastert, die Farbe jedes Pixels wird mit einem vorgegebenen Programm (Pixel-Shader) berechnet. Das Programm liest für jedes Pixel die Eingabedaten aus den Texturen, fügt sie hinzu und schreibt sie in den Ausgabepuffer. Und all diese zahlreichen Operationen werden für etwas benötigt, das in einem einzigen Operator in einer regulären Programmiersprache geschrieben ist!

Daher weist die Verwendung von GPGPU für Allzweck-Computing den Nachteil auf, dass die Schulung von Entwicklern zu schwierig ist. Und es gibt noch genügend andere Einschränkungen, denn ein Pixel-Shader ist nur eine Formel für die Abhängigkeit der endgültigen Farbe eines Pixels von seiner Koordinate, und die Sprache der Pixel-Shader ist eine Sprache zum Schreiben dieser Formeln mit einer C-ähnlichen Syntax. Frühe GPGPU-Methoden sind ein netter Trick, der es Ihnen ermöglicht, die Leistung der GPU zu nutzen, jedoch ohne deren Komfort. Die dortigen Daten werden durch Bilder (Texturen) dargestellt und der Algorithmus wird durch den Rasterungsprozess dargestellt. Besonders hervorzuheben ist das sehr spezifische Gedächtnis- und Ausführungsmodell.

Die Software- und Hardware-Architektur von NVIDIA für GPU-Computing unterscheidet sich von früheren GPGPU-Modellen dadurch, dass sie es Ihnen ermöglicht, Programme für die GPU in echter C-Sprache mit Standardsyntax, Zeigern und der Notwendigkeit eines Minimums an Erweiterungen zu schreiben, um auf die Rechenressourcen von Videochips zuzugreifen. CUDA ist unabhängig von Grafik-APIs und verfügt über einige Funktionen, die speziell für allgemeine Computeranwendungen entwickelt wurden.

Vorteile von CUDA gegenüber dem herkömmlichen Ansatz für GPGPU-Computing

CUDA bietet Zugriff auf 16 KB Thread-Shared-Speicher pro Multiprozessor, der zum Organisieren eines Caches mit höherer Bandbreite als Texturabrufen verwendet werden kann;

Effizientere Datenübertragung zwischen System und Videospeicher;

Keine grafischen APIs mit Redundanz und Overhead erforderlich;

Lineare Speicheradressierung, Sammeln und Streuen, Fähigkeit, an beliebige Adressen zu schreiben;

Hardwareunterstützung für Ganzzahl- und Bitoperationen.

Haupteinschränkungen von CUDA:

Fehlende Rekursionsunterstützung für ausführbare Funktionen;

Die minimale Blockbreite beträgt 32 Threads;

Geschlossene CUDA-Architektur von NVIDIA.

Die Schwächen der Programmierung mit früheren GPGPU-Methoden bestehen darin, dass diese Methoden keine Vertex-Shader-Ausführungseinheiten in früheren nicht einheitlichen Architekturen verwenden, Daten in Texturen gespeichert und in einen Off-Screen-Puffer ausgegeben werden und Multi-Pass-Algorithmen Pixel-Shader-Einheiten verwenden. Zu den GPGPU-Einschränkungen können gehören: unzureichende Nutzung der Hardwarefunktionen, Einschränkungen der Speicherbandbreite, fehlender Scatter-Vorgang (nur Gather), obligatorische Verwendung der Grafik-API.

Die Hauptvorteile von CUDA gegenüber früheren GPGPU-Methoden ergeben sich aus der Tatsache, dass die Architektur darauf ausgelegt ist, nichtgrafisches Computing auf der GPU effizient zu nutzen und die Programmiersprache C verwendet, ohne dass Algorithmen in eine konzeptfreundliche Form für die Grafikpipeline portiert werden müssen . CUDA bietet einen neuen Weg zum GPU-Computing, das keine Grafik-APIs verwendet und einen wahlfreien Speicherzugriff (Scatter oder Gather) bietet. Diese Architektur weist nicht die Nachteile von GPGPU auf, nutzt alle Ausführungseinheiten und erweitert außerdem die Fähigkeiten durch Ganzzahlmathematik und Bitverschiebungsoperationen.

CUDA eröffnet einige Hardwarefunktionen, die über Grafik-APIs nicht verfügbar sind, wie z. B. gemeinsam genutzter Speicher. Dabei handelt es sich um einen kleinen Speicher (16 Kilobyte pro Multiprozessor), auf den Thread-Blöcke Zugriff haben. Es ermöglicht Ihnen, die am häufigsten verwendeten Daten zwischenzuspeichern und mehr bereitzustellen hohe Geschwindigkeit,im Vergleich zur Verwendung von Texturabrufen für diese Aufgabe. Dies wiederum verringert die Durchsatzempfindlichkeit paralleler Algorithmen in vielen Anwendungen. Es ist beispielsweise nützlich für lineare Algebra, schnelle Fourier-Transformation und Bildverarbeitungsfilter.

Auch der Speicherzugriff ist in CUDA bequemer. Programmcode In der Grafik-API gibt es Daten in Form von 32 Gleitkommawerten mit einfacher Genauigkeit (RGBA-Werte gleichzeitig in acht Renderzielen) in vordefinierte Bereiche aus, und CUDA unterstützt Scatter-Datensätze – eine unbegrenzte Anzahl von Datensätzen Adresse. Solche Vorteile ermöglichen die Ausführung einiger Algorithmen auf der GPU, die mit GPGPU-Methoden auf Basis von Grafik-APIs nicht effizient implementiert werden können.

Außerdem speichern Grafik-APIs Daten notwendigerweise in Texturen, was eine vorherige Verpackung großer Arrays in Texturen erfordert, was den Algorithmus verkompliziert und die Verwendung einer speziellen Adressierung erzwingt. Und mit CUDA können Sie Daten an jeder Adresse lesen. Ein weiterer Vorteil von CUDA ist der optimierte Datenaustausch zwischen CPU und GPU. Und für Entwickler, die darauf zugreifen möchten niedriges Niveau(zum Beispiel beim Schreiben einer anderen Programmiersprache) bietet CUDA die Möglichkeit der Low-Level-Programmierung in Assemblersprache.

Nachteile von CUDA

Einer der wenigen Nachteile von CUDA ist seine schlechte Portabilität. Diese Architektur funktioniert nur auf Videochips dieser Firma und nicht auf allen, sondern beginnend mit den Serien GeForce 8 und 9 und den entsprechenden Quadro, ION und Tesla. NVIDIA gibt eine Zahl von 90 Millionen CUDA-kompatiblen Videochips an.

CUDA-Alternativen

Ein Framework zum Schreiben von Computerprogrammen für paralleles Rechnen auf verschiedenen Grafik- und Zentralprozessoren. Das OpenCL-Framework umfasst eine Programmiersprache, die auf dem C99-Standard basiert, und eine An(API). OpenCL bietet Parallelität auf Befehls- und Datenebene und ist eine Implementierung der GPGPU-Technik. OpenCL ist ein vollständig offener Standard und kann lizenzgebührenfrei genutzt werden.

Das Ziel von OpenCL ist die Ergänzung von OpenGL und OpenAL, die offene Industriestandards für 3D sind Computergrafik und Sound unter Ausnutzung der Fähigkeiten der GPU. OpenCL wird vom gemeinnützigen Konsortium Khronos Group entwickelt und gepflegt, zu dem viele große Unternehmen gehören, darunter Apple, AMD, Intel, nVidia, Sun Microsystems, Sony Computer Entertainment und andere.

CAL/IL (Compute Abstraction Layer/Intermediate Language)

Bei der ATI Stream-Technologie handelt es sich um eine Reihe von Hardware- und Softwaretechnologien, die Grafiken ermöglichen AMD-Prozessoren, zusammen mit dem Zentralprozessor, um viele Anwendungen (nicht nur Grafiken) zu beschleunigen.

Zu den Anwendungen für ATI Stream gehören rechenintensive Anwendungen wie Finanzanalysen oder seismische Datenverarbeitung. Durch den Einsatz eines Stream-Prozessors konnte die Geschwindigkeit einiger Finanzberechnungen im Vergleich zur Lösung desselben Problems nur mit dem Zentralprozessor um das 55-fache gesteigert werden.

NVIDIA betrachtet die ATI Stream-Technologie nicht als sehr starken Konkurrenten. CUDA und Stream sind zwei verschiedene Technologien, die sich auf unterschiedlichen Entwicklungsstufen befinden. Die Programmierung für ATI-Produkte ist viel komplexer – ihre Sprache ähnelt eher der Assemblersprache. CUDA C wiederum ist eine viel höhere Sprache. Das Schreiben darauf ist bequemer und einfacher. Dies ist für große Entwicklungsunternehmen sehr wichtig. Wenn wir über Leistung sprechen, können wir sehen, dass der Spitzenwert bei ATI-Produkten höher ist als bei NVIDIA-Lösungen. Aber auch hier kommt es darauf an, wie man diese Kraft erlangt.

DirectX11 (DirectCompute)

Eine Anwendungsprogrammierschnittstelle, die Teil von DirectX ist, einer Reihe von APIs von Microsoft, die für die Ausführung auf IBM PC-kompatiblen Computern konzipiert sind, auf denen die Betriebssystemfamilie ausgeführt wird Microsoft Windows. DirectCompute ist für die Durchführung allgemeiner Datenverarbeitung auf GPUs konzipiert, einer Implementierung des GPGPU-Konzepts. DirectCompute wurde ursprünglich als Teil von DirectX 11 veröffentlicht, wurde aber später für DirectX 10 und DirectX 10.1 verfügbar.

NVDIA CUDA in der russischen Wissenschaftsgemeinschaft.

Stand Dezember 2009, Softwaremodell CUDA wird an 269 Universitäten weltweit gelehrt. In Russland werden Schulungen zu CUDA in Moskau, St. Petersburg, Kasan, Nowosibirsk und Perm durchgeführt staatliche Universitäten, Internationale Universität für die Natur der Gesellschaft und des Menschen „Dubna“, Gemeinsames Institut für Kernforschung, Moskauer Institut für Elektronische Technologie, Staatliche Energieuniversität Ivanovo, BSTU benannt nach. V. G. Shukhov, MSTU im. Bauman, nach ihm benannte Russische Chemisch-Technische Universität. Mendeleev, Russisches Wissenschaftszentrum „Kurchatov-Institut“, Interregionales Supercomputerzentrum der Russischen Akademie der Wissenschaften, Taganrog Technological Institute (TTI SFU).

Heutzutage wird es besonders aktiv diskutiert und viele Benutzer interessieren sich dafür, wo man mit dem Mining von Münzen beginnen kann und wie es überhaupt geschieht. Die Popularität dieser Branche hat bereits spürbare Auswirkungen auf den GPU-Markt gehabt, und viele Menschen verbinden eine leistungsstarke Grafikkarte schon lange nicht mehr mit anspruchsvollen Spielen, sondern mit Kryptofarmen. In diesem Artikel werden wir darüber sprechen, wie Sie diesen gesamten Prozess von Grund auf organisieren und mit dem Mining auf Ihrer eigenen Farm beginnen, was Sie dafür verwenden und warum dies unmöglich ist.

Was ist Mining auf einer Grafikkarte?

GPU-Mining ist der Prozess des Minings von Kryptowährungen mithilfe von Grafikprozessoren (GPUs). Verwenden Sie dazu eine leistungsstarke Grafikkarte in einem Heimcomputer oder eine speziell zusammengestellte Farm aus mehreren Geräten in einem System. Wenn Sie sich fragen, warum für diesen Prozess GPUs verwendet werden, ist die Antwort ganz einfach. Tatsache ist, dass Grafikkarten ursprünglich dafür ausgelegt sind, große Datenmengen zu verarbeiten, indem sie ähnliche Vorgänge ausführen, wie dies bei der Videoverarbeitung der Fall ist. Das gleiche Bild ist beim Kryptowährungs-Mining zu beobachten, da hier der Hashing-Prozess genauso ähnlich ist.

Für das Mining werden vollwertige diskrete Grafikkarten verwendet. Laptops oder prozessorintegrierte Chips kommen nicht zum Einsatz. Im Internet gibt es auch Artikel zum Mining auf einer externen Grafikkarte, aber auch das funktioniert nicht in allen Fällen und ist nicht die beste Lösung.

Welche Grafikkarten eignen sich zum Mining?

Was die Auswahl einer Grafikkarte angeht, ist es hier üblich, eine AMD RX 470, RX 480, RX 570, RX 580 oder Nvidia 1060, 1070, 1080 ti zu kaufen. Grafikkarten wie r9 280x, r9 290, 1050, 1060 sind ebenfalls geeignet, bringen aber keinen großen Gewinn. Das Mining auf einer schwachen Grafikkarte wie geforce gtx 460, gts 450, gtx 550ti wird definitiv keinen Gewinn bringen. Wenn wir über Speicher sprechen, ist es besser, 2 GB zu nehmen. Selbst 1 GB reicht möglicherweise nicht aus, geschweige denn 512 MB. Wenn wir über das Mining auf einer professionellen Grafikkarte sprechen, dann bringt es dasselbe wie normale oder sogar weniger. Unter Berücksichtigung der Kosten solcher VCs ist dies unrentabel, aber Sie können sie mit ihrer Hilfe schürfen, wenn Sie sie bereits auf Lager haben.

Erwähnenswert ist auch, dass alle Grafikkarten durch die Freischaltung der vom Hersteller eingestellten Werte eine Leistungssteigerung erhalten können. Dieser Vorgang wird Übertakten genannt. Dies ist jedoch unsicher, führt zum Verlust der Garantie und es kann zu Ausfällen der Karte kommen, beispielsweise durch beginnende Artefakte. Es ist möglich, Grafikkarten zu übertakten, Sie müssen jedoch die Materialien zu diesem Thema lesen und vorsichtig vorgehen. Sie sollten nicht versuchen, alle Werte sofort auf das Maximum einzustellen. Noch besser ist es, im Internet Beispiele für erfolgreiche Übertaktungseinstellungen speziell für Ihre Grafikkarte zu finden.

Die beliebtesten Grafikkarten für den Bergbau 2020

Nachfolgend finden Sie einen Vergleich von Grafikkarten. Die Tabelle enthält die beliebtesten Geräte und deren maximalen Stromverbrauch. Es muss gesagt werden, dass diese Indikatoren je nach dem jeweiligen Grafikkartenmodell, seinem Hersteller, dem verwendeten Speicher und einigen anderen Merkmalen variieren können. Es macht keinen Sinn, über veraltete Indikatoren wie das Litecoin-Mining auf einer Grafikkarte zu schreiben, daher werden nur die drei beliebtesten Algorithmen für das Mining auf Grafikkarten berücksichtigt.

Grafikkarte Ethash Equihash CryptoNight Energieverbrauch
AMD Radeon R9 280x 11 MHz/s 290 Std./s 490 H/s 230W
AMD Radeon RX 470 26 MHz/s 260 Std./s 660 Std./s 120W
AMD Radeon RX 480 29,5 MH/s 290 Std./s 730 H/s 135W
AMD Radeon RX 570 27,9 MH/s 260 Std./s 700 H/s 120W
AMD Radeon RX 580 30,2 MH/s 290 Std./s 690 H/s 135W
Nvidia GeForce GTX 750TI 0,5 MHz/s 75 Std./s 250 Std./s 55W
Nvidia GeForce GTX 1050TI 13,9 MH/s 180 Std./s 300 Std./s 75W
Nvidia GeForce GTX 1060 22,5 MHz/s 270 Std./s 430 Std./s 90W
Nvidia GeForce GTX 1070 30 MHz/s 430 Std./s 630 Std./s 120W
Nvidia GeForce GTX 1070TI 30,5 MH/s 470 H/s 630 Std./s 135W
Nvidia GeForce GTX 1080 23,3 MH/s 550 Std./s 580 Std./s 140W
Nvidia GeForce GTX 1080TI 35 MHz/s 685 Std./s 830 H/s 190W

Ist Mining auf einer Grafikkarte möglich?

Wenn Sie keine vollständige Farm aus mehreren GPUs zusammenstellen möchten oder diesen Vorgang einfach auf Ihrem Heimcomputer ausprobieren möchten, können Sie das Mining mit einer Grafikkarte durchführen. Es gibt keine Unterschiede und im Allgemeinen spielt die Anzahl der Geräte im System keine Rolle. Darüber hinaus können Sie Geräte mit unterschiedlichen Chips oder sogar von einbauen verschiedene Hersteller. Sie müssen lediglich zwei Programme parallel für Chips verschiedener Hersteller ausführen. Wir möchten Sie noch einmal daran erinnern, dass das Mining nicht auf einer integrierten Grafikkarte durchgeführt wird.

Welche Kryptowährungen können auf Grafikkarten geschürft werden?

Sie können jede Kryptowährung auf einer GPU schürfen, Sie sollten sich jedoch darüber im Klaren sein, dass die Leistung verschiedener Kryptowährungen auf derselben Karte unterschiedlich sein wird. Ältere Algorithmen sind für Videoprozessoren nicht mehr geeignet und bringen keinen Gewinn. Dies geschieht aufgrund des Erscheinens neuer Geräte auf dem Markt – der sogenannten. Sie sind viel produktiver und erhöhen die Komplexität des Netzwerks erheblich, aber ihre Kosten sind hoch und belaufen sich auf Tausende von Dollar. Daher ist es im Jahr 2018 keine gute Idee, zu Hause Münzen mit SHA-256 (Bitcoin) oder Scrypt (Litecoin, Dogecoin) zu schürfen.

Zusätzlich zu LTC und DOGE haben ASICs das Mining von Bitcoin (BTC), Dash und anderen Währungen unmöglich gemacht. Eine viel bessere Wahl wären Kryptowährungen, die ASIC-geschützte Algorithmen verwenden. Mit einer GPU können Sie beispielsweise Münzen mit den Algorithmen CryptoNight (Karbovanets, Monero, Electroneum, Bytecoin), Equihash (ZCash, Hush, Bitcoin Gold) und Ethash (Ethereum, Ethereum Classic) schürfen. Die Liste ist bei weitem nicht vollständig und es tauchen ständig neue Projekte auf, die auf diesen Algorithmen basieren. Darunter sind sowohl Forks beliebterer Coins als auch völlig neue Entwicklungen. Gelegentlich tauchen sogar neue Algorithmen auf, die auf die Lösung spezifischer Probleme ausgelegt sind und unterschiedliche Geräte nutzen können. Im Folgenden werden wir darüber sprechen, wie Sie die Hashrate einer Grafikkarte ermitteln.

Was Sie zum Mining auf einer Grafikkarte benötigen

Nachfolgend finden Sie eine Liste dessen, was Sie zum Erstellen einer Farm benötigen:

  • Die Grafikkarten selbst. Auswahl bestimmte Modelle hängt von Ihrem Budget ab oder davon, was Sie bereits zur Hand haben. Natürlich funktionieren alte AGP-Geräte nicht, aber Sie können jede Karte der Mittel- oder Oberklasse aus den letzten Jahren verwenden. Oben können Sie zur Grafikkarten-Leistungstabelle zurückkehren, um die richtige Wahl zu treffen.
  • Ein Computer für die Installation. Es ist nicht notwendig, Top-End-Hardware zu verwenden und eine Farm auf Basis von Hochleistungskomponenten aufzubauen. Beliebig alter AMD Athlon, mehrere Gigabyte Arbeitsspeicher Und Festplatte zum Installieren Betriebssystem Und notwendige Programme. Auch das Motherboard ist wichtig. Es sollte über genügend PCI-Steckplätze für Ihre Farm verfügen. Es gibt spezielle Versionen für Miner, die 6-8 Steckplätze enthalten und in bestimmten Fällen ist es rentabler, diese zu verwenden, als mehrere PCs zusammenzustellen. Besonderes Augenmerk sollte nur auf die Stromversorgung gelegt werden, da das System rund um die Uhr unter hoher Last arbeitet. Es ist zwingend erforderlich, ein Netzteil mit Gangreserve mitzunehmen und es empfiehlt sich, über 80 Plus-Zertifikate zu verfügen. Es ist auch möglich, zwei Blöcke über spezielle Adapter zu einem zu verbinden, allerdings sorgt diese Lösung im Internet für Kontroversen. Es ist besser, das Gehäuse überhaupt nicht zu verwenden. Für bessere Kühlung Es wird empfohlen, einen speziellen Stand anzufertigen oder zu kaufen. In diesem Fall werden Grafikkarten mithilfe spezieller Adapter, sogenannter Riser, entfernt. Sie können sie in Fachgeschäften oder bei Aliexpress kaufen.
  • Gut belüfteter, trockener Bereich. Der Bauernhof sollte in einem Nichtwohnraum oder noch besser in einem separaten Raum untergebracht werden. Dadurch werden die Unannehmlichkeiten beseitigt, die durch den lauten Betrieb von Kühl- und Wärmeübertragungssystemen entstehen. Ist dies nicht möglich, sollten Sie Grafikkarten mit einem möglichst leisen Kühlsystem wählen. Mehr darüber erfahren Sie in Rezensionen im Internet, zum Beispiel auf YouTube. Sie sollten auch an Luftzirkulation und Belüftung denken, um die Temperaturen so niedrig wie möglich zu halten.
  • Miner-Programm. Das GPU-Mining erfolgt mit einem speziellen Gerät, das im Internet zu finden ist. Die Hersteller ATI Radeon und Nvidia verwenden unterschiedliche Software. Gleiches gilt für verschiedene Algorithmen.
  • Ausrüstungsservice. Dies ist ein sehr wichtiger Punkt, da nicht jeder versteht, dass eine Mining-Farm ständige Wartung erfordert. Der Benutzer muss die Temperatur überwachen, die Wärmeleitpaste wechseln und das CO von Staub reinigen. Denken Sie auch an Sicherheitsvorkehrungen und überprüfen Sie regelmäßig die Funktionsfähigkeit des Systems.

So richten Sie das Mining auf einer Grafikkarte von Grund auf ein

In diesem Abschnitt betrachten wir den gesamten Mining-Prozess von der Auswahl einer Währung bis zum Abheben von Geldern. Es ist zu beachten, dass dieser gesamte Prozess für verschiedene Pools, Programme und Chips leicht unterschiedlich sein kann.

So wählen Sie eine Grafikkarte für das Mining aus

Wir empfehlen Ihnen, sich mit der oben dargestellten Tabelle und dem Abschnitt zur Berechnung des potenziellen Verdienstes vertraut zu machen. Auf diese Weise können Sie Ihr ungefähres Einkommen berechnen und entscheiden, welche Hardware Sie sich mehr leisten können, sowie die Amortisationszeit Ihrer Investition nachvollziehen. Vergessen Sie auch nicht die Kompatibilität der Stromanschlüsse der Grafikkarte und des Netzteils. Werden unterschiedliche verwendet, sollten Sie sich vorab die entsprechenden Adapter besorgen. All dies kann problemlos in chinesischen Online-Shops für ein paar Cent oder bei lokalen Verkäufern mit einem gewissen Aufschlag gekauft werden.

Auswahl einer Kryptowährung

Nun gilt es zu entscheiden, welcher Coin Sie interessiert und welche Ziele Sie erreichen möchten. Wenn Sie daran interessiert sind, in Echtzeit Geld zu verdienen, sollten Sie die Währungen mit dem höchsten Gewinn wählen dieser Moment und verkaufen diese sofort nach Erhalt. Sie können auch die beliebtesten Münzen schürfen und sie behalten, bis der Preis steigt. Es gibt auch eine Art strategischen Ansatz, bei dem man sich für eine wenig bekannte, aber Ihrer Meinung nach vielversprechende Währung entscheidet und Macht in sie investiert, in der Hoffnung, dass der Wert in Zukunft deutlich steigt.

Auswahl eines Mining-Pools

Sie weisen auch einige Unterschiede auf. Für einige davon ist eine Registrierung erforderlich, für andere benötigen Sie lediglich Ihre Wallet-Adresse, um loszulegen. Erstere speichern in der Regel die von Ihnen verdienten Gelder, bis der Mindestbetrag für die Zahlung erreicht ist, oder während Sie auf Ihre manuelle Geldabhebung warten. Ein gutes Beispiel für einen solchen Pool ist Suprnova.cc. Dort werden viele Kryptowährungen angeboten und um in jedem der Pools zu arbeiten, muss man sich nur einmal auf der Seite registrieren. Der Dienst ist einfach einzurichten und eignet sich gut für Einsteiger.

Die Minergate-Website bietet ein ähnlich vereinfachtes System. Nun, wenn Sie sich nicht auf einer Website registrieren und Ihr verdientes Geld dort speichern möchten, sollten Sie im BitcoinTalk-Forum einen Pool im offiziellen Thema der Münze auswählen, an der Sie interessiert sind. Bei einfachen Pools müssen Sie lediglich eine Adresse angeben, an die die Kryptowährung gutgeschrieben werden soll, und in Zukunft können Sie mithilfe der Adresse Mining-Statistiken ermitteln.

Erstellen einer Kryptowährungs-Wallet

Sie benötigen diesen Artikel nicht, wenn Sie einen Pool nutzen, der eine Registrierung erfordert und über eine integrierte Wallet verfügt. Wenn Sie Zahlungen automatisch auf Ihr Wallet erhalten möchten, lesen Sie im Artikel zum entsprechenden Coin nach, wie Sie ein Wallet erstellen. Dieser Prozess kann je nach Projekt erheblich variieren.

Sie können auch einfach Ihre Wallet-Adresse auf einer der Börsen angeben, allerdings ist zu beachten, dass nicht alle Börsenplattformen Transaktionen aus Pools akzeptieren. Die beste Option wäre, ein Wallet direkt auf Ihrem Computer zu erstellen. Wenn Sie jedoch mit einer großen Anzahl von Währungen arbeiten, ist die Speicherung aller Blockchains umständlich. In diesem Fall lohnt es sich, nach zuverlässigen Online-Wallets oder leichten Versionen zu suchen, bei denen nicht die gesamte Blockchain heruntergeladen werden muss.

Wählen Sie das Mining-Programm aus und installieren Sie es

Die Wahl des Programms zum Mining von Krypto hängt von der ausgewählten Münze und ihrem Algorithmus ab. Wahrscheinlich haben alle Entwickler solcher Software Themen auf BitcoinTalks, wo Sie Download-Links und Informationen zur Einrichtung und zum Start finden. Fast alle dieser Programme haben Versionen sowohl für Windows als auch für Linux. Die meisten dieser Miner sind kostenlos, nutzen jedoch einen bestimmten Prozentsatz der Zeit, um eine Verbindung zum Pool des Entwicklers herzustellen. Hierbei handelt es sich um eine Art Gebühr für die Nutzung der Software. In einigen Fällen kann es deaktiviert werden, was jedoch zu Funktionseinschränkungen führt.

Das Einrichten des Programms besteht aus der Angabe des Mining-Pools, der Wallet-Adresse oder des Logins, des Passworts (falls vorhanden) und anderer Optionen. Es empfiehlt sich beispielsweise, eine maximale Temperaturgrenze festzulegen, bei deren Erreichen sich die Farm abschaltet, um die Grafikkarten nicht zu beschädigen. Es werden die Geschwindigkeit der Lüfter des Kühlsystems und andere subtilere Einstellungen angepasst, die von Anfängern wahrscheinlich nicht verwendet werden.

Wenn Sie nicht wissen, welche Software Sie wählen sollen, schauen Sie sich unser entsprechendes Material an oder lesen Sie die Anweisungen auf der Pool-Website. Normalerweise gibt es immer einen Abschnitt, der den ersten Schritten gewidmet ist. Es enthält eine Liste der verwendbaren Programme und Konfigurationen .Schläger Dateien. Mit seiner Hilfe können Sie die Einrichtung schnell herausfinden und mit dem Mining auf einer separaten Grafikkarte beginnen. Sie können sofort Batch-Dateien für alle Währungen erstellen, mit denen Sie arbeiten möchten, sodass Sie in Zukunft bequemer zwischen ihnen wechseln können.

Wir beginnen mit dem Mining und überwachen die Statistiken

Nach dem Start .Schläger Nachdem Sie die Datei mit den Einstellungen heruntergeladen haben, wird ein Konsolenfenster angezeigt, in dem ein Protokoll der Vorgänge angezeigt wird. Es befindet sich auch im Ordner mit der gestarteten Datei. In der Konsole können Sie die aktuelle Hashrate und Temperatur der Karte einsehen. Über Hotkeys können Sie in der Regel aktuelle Daten abrufen.

Sie können auch sehen, ob das Gerät die Hashes nicht findet. In diesem Fall wird eine Warnung angezeigt. Dies passiert, wenn etwas falsch konfiguriert ist, die falsche Software für den Coin ausgewählt ist oder die GPU nicht richtig funktioniert. Viele Bergleute nutzen auch Gelder, um Fernzugriff an einen PC übertragen, um den Betrieb der Farm zu überwachen, wenn sie sich nicht dort befinden, wo sie installiert ist.

Wir ziehen Kryptowährung zurück

Wenn Sie Pools wie Suprnova nutzen, sammeln sich alle Gelder einfach auf Ihrem Konto an und Sie können sie jederzeit abheben. Andere Pools verwenden meist ein System, bei dem Gelder nach Erhalt eines Mindestauszahlungsbetrags automatisch einem bestimmten Wallet gutgeschrieben werden. Wie viel Sie verdient haben, erfahren Sie in der Regel auf der Website des Pools. Sie müssen lediglich Ihre Wallet-Adresse angeben oder sich bei Ihrem persönlichen Konto anmelden.

Wie viel können Sie verdienen?

Der Betrag, den Sie verdienen können, hängt von der Marktsituation und natürlich von der Gesamt-Hashrate Ihrer Farm ab. Es ist auch wichtig, welche Strategie Sie wählen. Es ist nicht notwendig, alles Abgebaute auf einmal zu verkaufen. Sie können beispielsweise darauf warten, dass der Preis der abgebauten Münze sprunghaft ansteigt, und so einen um ein Vielfaches höheren Gewinn erzielen. Allerdings ist nicht alles so klar und vorhersehbar weitere Entwicklung Ereignisse sind einfach unrealistisch.

Amortisation von Grafikkarten

Ein spezieller Online-Rechner hilft Ihnen bei der Berechnung der Amortisation. Davon gibt es viele im Internet, wir betrachten diesen Vorgang jedoch am Beispiel des WhatToMine-Dienstes. Es ermöglicht Ihnen, aktuelle Gewinndaten basierend auf Ihren Betriebsdaten zu erhalten. Sie müssen lediglich die Grafikkarten auswählen, die Sie auf Lager haben, und dann die Stromkosten in Ihrer Region hinzufügen. Die Website berechnet, wie viel Sie pro Tag verdienen können.

Es versteht sich, dass nur die aktuelle Marktlage berücksichtigt wird und sich die Situation jederzeit ändern kann. Die Rate kann fallen oder steigen, die Schwierigkeit des Bergbaus wird sich ändern oder es werden neue Projekte entstehen. Beispielsweise könnte die Produktion von Ether aufgrund eines möglichen Übergangs des Netzwerks zu eingestellt werden. Wenn das Ethereum-Mining aufhört, müssen die Farmen ihren kostenlosen Strom irgendwohin leiten, zum Beispiel in das ZCash-Mining auf GPUs, was sich auf den Preis dieser Münze auswirken wird. Es gibt viele ähnliche Szenarien auf dem Markt und es ist wichtig zu verstehen, dass das heutige Bild möglicherweise nicht während der gesamten Amortisationszeit der Ausrüstung erhalten bleibt.

Ein Entwickler sollte lernen, die Grafikverarbeitungseinheit (GPU) des Geräts effektiv zu nutzen, damit die Anwendung nicht langsamer wird oder unnötige Arbeit ausführt.

Konfigurieren Sie die GPU-Rendering-Einstellungen

Wenn Ihre Anwendung langsam ist, bedeutet das, dass die Aktualisierung einiger oder aller Aktualisierungsrahmen des Bildschirms länger als 16 Millisekunden dauert. Um Frame-Updates visuell auf dem Bildschirm anzuzeigen, können Sie eine spezielle Option auf dem Gerät aktivieren (Profile GPU Rendering).

Sie können schnell erkennen, wie lange das Rendern von Frames dauert. Ich möchte Sie daran erinnern, dass Sie es innerhalb von 16 Millisekunden halten müssen.

Die Option ist auf Geräten ab Android 4.1 verfügbar. Der Entwicklermodus muss auf dem Gerät aktiviert sein. Auf Geräten mit Version 4.2 und höher ist der Modus standardmäßig ausgeblendet. Zum Aktivieren gehen Sie zu Einstellungen | Über das Telefon und klicken Sie sieben Mal auf die Zeile Build-Nummer.

Gehen Sie nach der Aktivierung zu Entwickleroptionen und den Punkt finden Konfigurieren Sie die GPU-Rendering-Einstellungen(Profil-GPU-Rendering), das aktiviert sein sollte. Wählen Sie im Popup-Fenster die Option aus Auf dem Bildschirm in Form von Spalten(Auf dem Bildschirm als Balken). In diesem Fall wird das Diagramm über der laufenden Anwendung angezeigt.

Sie können nicht nur Ihre Anwendung testen, sondern auch andere. Starten Sie eine beliebige Anwendung und beginnen Sie damit zu arbeiten. Während Sie arbeiten, wird am unteren Bildschirmrand eine aktualisierte Grafik angezeigt. Horizontale Achse ist für die Vergangenheitsform verantwortlich. Die vertikale Achse zeigt die Zeit für jeden Frame in Millisekunden. Bei der Interaktion mit der Anwendung werden von links nach rechts vertikale Balken auf dem Bildschirm gezeichnet, die die Frame-Leistung im Zeitverlauf anzeigen. Jede dieser Spalten stellt einen Rahmen zum Zeichnen des Bildschirms dar. Je höher die Spaltenhöhe, desto länger dauert das Zeichnen. Die dünne grüne Linie dient als Orientierung und entspricht 16 Millisekunden pro Frame. Daher müssen Sie beim Studium Ihrer Bewerbung darauf achten, dass die Grafik nicht über diese Linie hinausgeht.

Schauen wir uns eine größere Version des Diagramms an.

Die grüne Linie ist für 16 Millisekunden verantwortlich. Um innerhalb von 60 Bildern pro Sekunde zu bleiben, muss jeder Diagrammbalken unterhalb dieser Linie gezeichnet werden. Irgendwann wird die Säule zu groß und viel höher als die grüne Linie sein. Das bedeutet, dass das Programm langsamer wird. Jede Spalte enthält Cyan, Lila (Lollipop und höher), Rot und Orange.

Die blaue Farbe ist für die Zeit verantwortlich, die zum Erstellen und Aktualisieren benötigt wird Sicht.

Der violette Teil stellt die Zeit dar, die für die Übertragung der Rendering-Ressourcen des Threads aufgewendet wurde.

Die rote Farbe stellt die Zeit zum Zeichnen dar.

Die orange Farbe zeigt an, wie lange die CPU gewartet hat, bis die GPU ihre Arbeit abgeschlossen hat. Dies ist die Ursache für Probleme bei großen Werten.

Um die Belastung der GPU zu reduzieren, gibt es spezielle Techniken.

Debuggen Sie die GPU-Überlastungsanzeige

Mit einer anderen Einstellung erfahren Sie, wie oft derselbe Teil des Bildschirms neu gezeichnet wird (d. h. zusätzliche Arbeit geleistet wird). Lass uns nochmal gehen Entwickleroptionen und den Punkt finden Debuggen Sie die GPU-Überlastungsanzeige(Debug GPU Overdraw), das aktiviert sein sollte. Wählen Sie im Popup-Fenster die Option aus Overlay-Zonen anzeigen(Überzeichnungsbereiche anzeigen). Hab keine Angst! Einige Elemente auf dem Bildschirm ändern ihre Farbe.

Gehen Sie zu einer beliebigen Anwendung zurück und beobachten Sie, wie sie funktioniert. Die Farbe weist auf Problembereiche in Ihrer Anwendung hin.

Wenn sich die Farbe in der Anwendung nicht verändert hat, ist alles in Ordnung. Es gibt keine Überlagerung einer Farbe über einer anderen.

Die blaue Farbe zeigt an, dass eine Ebene über der darunter liegenden Ebene gezeichnet wird. Bußgeld.

Grüne Farbe – zweimal neu gezeichnet. Sie müssen über eine Optimierung nachdenken.

Rosa Farbe – dreimal neu gezeichnet. Alles ist sehr schlecht.

Rote Farbe – viele Male neu gezeichnet. Etwas ist schief gelaufen.

Sie können Ihre Bewerbung selbst überprüfen, um Problembereiche zu finden. Erstellen Sie eine Aktivität und platzieren Sie eine Komponente darauf Textvorschau. Geben Sie dem Stammelement und der Textbeschriftung einen Hintergrund im Attribut Android:Hintergrund. Sie erhalten Folgendes: Zuerst haben Sie die unterste Aktivitätsebene mit einer Farbe bemalt. Dann wird eine neue Ebene darüber gezeichnet Textvorschau. Eigentlich übrigens Textvorschau Text wird ebenfalls gezeichnet.

An manchen Stellen sind überlappende Farben nicht zu vermeiden. Aber stellen Sie sich vor, dass Sie den Hintergrund für die Liste auf die gleiche Weise festlegen Listenansicht, das den gesamten Aktivitätsbereich einnimmt. Das System wird eine doppelte Aufgabe erfüllen, obwohl der Benutzer nie die unterste Aktivitätsebene sehen wird. Und wenn Sie zusätzlich für jedes Element der Liste ein eigenes Markup mit eigenem Hintergrund erstellen, werden Sie in der Regel überfordert.

Ein kleiner Rat. Nach Methode platzieren setContentView() Aufrufen einer Methode, die verhindert, dass der Bildschirm mit der Designfarbe bemalt wird. Dies hilft dabei, eine zusätzliche Farbüberlagerung zu entfernen:

GetWindow().setBackgroundDrawable(null);



Freunden erzählen