Challenges Adapting CUDA PIC Codes to multiple GPUs

Olav Emil Eiksund
Department of Computer and Information Science, Norwegian University of Science and Technology
Norwegian University of Science and Technology, 2015

   title={Challenges Adapting CUDA PIC Codes to multiple GPUs},

   author={Eiksund, Olav Emil},




Download Download (PDF)   View View   Source Source   



A Particle-In-Cell code is a common particle simulation method often used to simulate the behaviour of plasma. In this work, a parallel PIC code is developed in CUDA, with a focus on how to adapt the method for multiple GPUs. An electrostatic three dimensional PIC code is developed, with an FFT-based solver using the cuFFT library. Several issues related to parallelizing the PIC code are discussed, along with the performance on one and two GPUs compared to the CPU version we developed based on OpenMP and FFTW as a benchmark. For most problem sizes, the application is found to be memory bound, with the speed of the memory interface playing a larger role than the double precision performance. Alternatives to some of the naive solutions are discussed, with suggestions for how the simulation could be implemented for a shared memory computer. Benchmarks were performed on several GPU platforms including Nvidia Tesla K20 and GTX 980, and the challenges of getting the implementations to simulate plasma oscillations are discussed.
VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
Challenges Adapting CUDA PIC Codes to multiple GPUs, 5.0 out of 5 based on 2 ratings

* * *

* * *

TwitterAPIExchange Object
    [oauth_access_token:TwitterAPIExchange:private] => 301967669-yDz6MrfyJFFsH1DVvrw5Xb9phx2d0DSOFuLehBGh
    [oauth_access_token_secret:TwitterAPIExchange:private] => o29ji3VLVmB6jASMqY8G7QZDCrdFmoTvCDNNUlb7s
    [consumer_key:TwitterAPIExchange:private] => TdQb63pho0ak9VevwMWpEgXAE
    [consumer_secret:TwitterAPIExchange:private] => Uq4rWz7nUnH1y6ab6uQ9xMk0KLcDrmckneEMdlq6G5E0jlQCFx
    [postfields:TwitterAPIExchange:private] => 
    [getfield:TwitterAPIExchange:private] => ?cursor=-1&screen_name=hgpu&skip_status=true&include_user_entities=false
    [oauth:protected] => Array
            [oauth_consumer_key] => TdQb63pho0ak9VevwMWpEgXAE
            [oauth_nonce] => 1477454383
            [oauth_signature_method] => HMAC-SHA1
            [oauth_token] => 301967669-yDz6MrfyJFFsH1DVvrw5Xb9phx2d0DSOFuLehBGh
            [oauth_timestamp] => 1477454383
            [oauth_version] => 1.0
            [cursor] => -1
            [screen_name] => hgpu
            [skip_status] => true
            [include_user_entities] => false
            [oauth_signature] => 0f5O217c0Cko2kwzGK/1jtEukYo=

    [url] => https://api.twitter.com/1.1/users/show.json
Follow us on Facebook
Follow us on Twitter

HGPU group

2033 peoples are following HGPU @twitter

HGPU group © 2010-2016 hgpu.org

All rights belong to the respective authors

Contact us: