2013-07-15 17 views
9

Visual Studio 2012 çözümlerinde bir çift C++ projem var. Bu projeler çok kodun oluşturmayı hızlandırmak için /MP kullanabileceğiniz geniş dosyaların miktarı ve içerir. Benzer bir şekilde ayrıca NVCC hızlandırmak için bir yol varsaVisual Studio'da Cuda paralel kod oluşturma

merak ediyordum. CUDA çekirdeklerini içeren projede/MP'nin kullanımı derleme zamanında fayda sağlamaz ve işyerinde yalnızca bir çekirdek görebiliyorum.

Yani soru şu: nasıl hız yukarıya CUDA derleme benim çok çekirdekli PC kullanabilir?

cevap

4

CUDA 5.5'ten itibaren, nvcc, MSVC'nin/MP'nin bir eşdeğerine sahip değildir, bu nedenle .cu dosyalarının herhangi bir paralellik oluşturması, NVCC'yi çağıran oluşturma aracından gelmelidir.

GNU (örneğin Cygwin altında veya Linux/Unix/OS X sistemde) Make kullanarak inşa edebilirsiniz varsa, kullanabilirsiniz onun parallel building functionality, bu paralel olarak birden tarifleri işlemek neden olur -j seçeneğini kullanarak. Windows üzerinde birden paralel oluşturma seçeneklerini sıralar

Here is a nice blog post, bazıları NVCC birlikte çalışabilir.

MSVC ve NVCC destekleyen gerçek bir dağıtılmış/Paralel yapı sisteminde, Incredibuild deneyebilirsin.

+0

Visual Studio için bir çözümde yerim. Son bağlantı listesi iki olasılık: daha önce bahsedilen/MP ve hatta daha yavaş/maxcpucount [: n]. –

+0

Şu anda muhtemelen Visual Studio için tek gerçek çözüm olan Incredibuild'e bir bağlantı ekledim. – harrism

2

Sen IncrediBuild

kullanabilirsiniz Ama bu hata oluşabilir:
önemli hata C1041: açılamıyor program veritabanı '...'; Birden çok CL.EXE aynı .PDB dosyasına yazıyorsa, lütfen/FS

kullanın. Bunu önlemek için lütfen Project -> Properties -> CUDA C/C++ -> Host -> Additional Compiler Options ->/FS öğesini seçin. daha this blog okumaya için

.