2012-03-26 16 views
1

Ich versuche, einen Multi-GPU OpenCL-Code zu implementieren. In meinem Modell müssen GPUs kommunizieren und Daten austauschen.OpenCL Subbuffer, warum ist wichtig?

Ich fand (ich erinnere mich nicht, wo, es ist schon einige Zeit), dass eine Lösung mit Subbuffers zu tun hat. Kann jemand so einfach wie möglich erklären, warum Subbuffer in OpenCL wichtig sind? ? Soweit ich das verstehe, kann man genau das gleiche tun, indem man nur Puffer verwendet.

Vielen Dank, Giorgos

Ergänzende Frage: Was ist der beste Weg, um Daten zwischen GPUs zu tauschen?

Antwort

0

Ich bin mir nicht sicher (oder weiß nicht), wie Sub-Puffer Lösungen für Ihr Problem bieten, wenn Sie mit mehreren GPUs arbeiten. AFAIK-Sub-Puffer bieten einen Blick in einen Puffer, dh ein einzelner Puffer kann in Blöcke kleinerer Puffer (Sub-Puffer) unterteilt werden, die eine Schicht von Software-Abstraktion bereitstellen. Sub-Puffer sind in den gleichen Fällen vorteilhaft, in denen Sie ein erstes Offset-Element beibehalten müssen sei null.

Um MultiGPU oder Multidevice Problem zu lösen OpenCL 1.2 bietet API von wo aus man Speicher kopieren clEnqueueMigrateMemObjects OpenCL API-Aufruf http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueMigrateMemObjects.html

+0

Danke für die Antwort direkt von einem GPU-Objekte zu anderen verwenden. Subbufer werden also nur verwendet, wenn jemand einen Offset halten muss? Es gibt keinen Nutzen in der Kommunikation? Ich weiß über clEnqueueMigrateMemObjects, aber soweit ich weiß, ist Version 1.2 noch nicht von nVidia implementiert. – Giorgos

Verwandte Themen