Kita perlu menghitung matriks kovarians dengan ukuran mulai dari hingga 100000 × 100000 . Kami memiliki akses ke GPU dan cluster, kami bertanya-tanya apa pendekatan paralel terbaik untuk mempercepat perhitungan ini.
matrix
parallel-computing
gpu
Buka jalannya
sumber
sumber
Jawaban:
Matriks data dan hasil Anda bisa sekitar 64GB, sehingga Anda tidak akan muat pada satu node atau nilai node GPU. Untuk kluster non-GPU, Anda mungkin ingin melihat PBLAS , yang terasa seperti scalapack. Untuk GPU, perpustakaan multi-simpul belum ada di sana. Magma memiliki semacam implementasi paralel BLAS yang mendasari, tetapi mungkin tidak ramah pengguna. Saya tidak berpikir CULA melakukan multi-node, tetapi sesuatu yang harus diperhatikan . CUBLAS adalah single-node.
Saya juga menyarankan agar Anda sangat mempertimbangkan untuk mengimplementasikan paralelisme sendiri, terutama jika Anda terbiasa dengan MPI dan harus menghubungkan ini ke basis kode yang ada. Dengan begitu, Anda dapat beralih antara CPU dan GPU BLAS dengan mudah dan mulai dan akhiri dengan data di tempat yang Anda inginkan. Anda tidak perlu lebih dari beberapa panggilan MPI_ALLREDUCE .
sumber
Saya menerapkan formula yang diberikan oleh @ Max Hutchinson dengan CUBlas dan Cuda Thrust dan dibandingkan dengan alat perhitungan co variance online. Tampaknya milikku menghasilkan hasil yang baik. Kode di bawah ini direncanakan untuk QDA Bayes. Jadi matriks yang diberikan mungkin mengandung lebih dari satu kelas. Jadi beberapa matriks varians dihitung. Semoga bermanfaat bagi seseorang.
sumber