2012-11-21 12 views
6

Sto pensando di utilizzare Clyther per un'attività ad alte prestazioni. È entusiasmante scrivere i kernel OpenCL usando solo python, ma mi chiedo quale sia il divario di prestazioni.Che dimensioni di Clyther in testa?

Quali sono le attività in cui Clyther è bravo? Cattivo? I kernel generati da Clyther sono buoni o no?

È possibile trovare alcuni parametri di riferimento?

+0

Ho potuto trovare solo un punto di riferimento: http://srossross.github.com/Clyther/performance_python.html#performance-results – Natan

risposta

4

Come afferma di documentazione, i principali punti di ingresso per CLyther sono le sue clyther.task e clyther.kernel decoratori - una volta che una funzione è decorato con uno di questi la funzione verrà compilato per OpenCL quando viene chiamato.

CLyther è un compilatore di un sottoinsieme del linguaggio Python. Compila il tuo codice di sottoinsieme Python in OpenCL, quindi il tempo di esecuzione effettivo del kernel non sarà (o non dovrebbe) molto diverso tra le interfacce e OpenCL. L'attuale overhead di CLyther (come con tutte le interfacce con Python) deriva dal chiamare le funzioni OpenCL, o lo spostamento di dati tra CLyther/Python e OpenCL.

I benchmark che mostrano gli performance di CLyther sono disponibili nello documentation. Il tarball sorgente contiene l'edizione C++ e FORTRAN del programma benchmarked, un risolutore di equazioni di Laplace, in modo che tu possa usarli per riprodurre da solo i risultati del benchmark.

Personalmente, credo che sia possibile utilizzare CLyther in modo efficace sulla maggior parte dei problemi che richiedono il calcolo di OpenCL.