2011-06-10 3 views
2

Je travaille sur un projet de traitement audio qui a besoin de beaucoup de calculs de base (+, -, *) comme un calcul FFT (Fast Fourier Transform).Demande de performance GPU, quelle est la meilleure solution?

Nous envisageons d'utiliser une carte graphique pour accélérer ces calculs. Mais nous ne savons pas si c'est la meilleure solution. Notre solution désirée doit être un bon système de calcul coûtant moins de 500 $.

Nous utilisons la programmation Matlab, et nous avons une acquisition de carte son qui doit être branchée dans le système.

Connaissez-vous une solution autre que carte graphique + carte mère pour faire beaucoup de calcul?

+0

Pour un coût total du système de moins de 500 $, nouveau, en utilisant un processeur multi-core contemporaine sera probablement plus rapide que en utilisant les GPU faibles qui sont disponibles sur ces systèmes. À 10X ce coût (y compris le refroidissement), la réponse sera différente. – hotpaw2

Répondre

5

Vous pouvez utiliser la bibliothèque free Matlab CUDA pour effectuer les calculs sur le GPU. 500 $ vous donnera un très bon NVIDIA GPU. Méfiez-vous que les GPU ont une mémoire vidéo limitée et manqueront de mémoire avec de gros volumes de données encore plus rapidement que Matlab. J'ai comparé un processeur intel 8core à un GPU 8800 Nvidia (128streams) avec GPUMat, pour des jeux de données de 512Kb, le GPU a tourné à la même vitesse que l'Intel 8 à 2Ghz, y compris les temps de transfert vers la mémoire du GPU. Pour un travail de GPU sérieux, je recommande une carte dédiée par rapport à celle que vous utilisez pour piloter le moniteur. Utilisez la carte mère cheapie intel vidéo pour conduire le moniteur et passer le tableau calcule à la Nvidia.

4

Parallel Computing Toolbox de MathWorks inclut désormais le support GPU. En particulier, les opérations élémentaires et l'arithmétique sont supportées, ainsi que les FFT 1 et 2-dimensionnelles (avec tout un tas d'autres choses pour supporter le code CUDA écrit à la main si vous en avez). Si vous souhaitez effectuer des calculs en double précision, les récentes cartes de marque Tesla et Quadro vous offriront les meilleures performances.

Voici un exemple trivial montrant comment vous pouvez utiliser le GPU dans MATLAB en utilisant Parallel Computing Toolbox:

gA = gpuArray(rand(1000)); 
gB = fft(1 + gA * 3); 
Questions connexes