Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#transmission_line functionality in GPU mode #129

Open
craig-warren opened this issue Oct 11, 2017 · 9 comments
Open

#transmission_line functionality in GPU mode #129

craig-warren opened this issue Oct 11, 2017 · 9 comments

Comments

@craig-warren
Copy link
Member

Currently the #snapshot and #transmission_line commands cannot be used in models when the -gpu command line argument is given, i.e. to use the GPU-accelerated solver. The reasons for this are:

  • The #snapshot command, currently, needs to write to file which involves transferring data from GPU to CPU at certain iterations of the simulations. Any transfer between GPU-CPU slows the performance drastically. There is a possibility to store snapshots on GPU memory until the simulation has finished, then write to file (this is what is done with the output file), but snapshots would require significant memory to store, and the GPU doesn't typically have a great deal.
  • The #transmission_line command attaches a 1D FDTD virtual transmission line to the main 2D/3D FDTD grid. It should only require making GPU kernels of the extra functions used to update the line and exchange data with the main grid.
@Tagussan
Copy link
Contributor

I made pull request for the use of snapshot with GPU. #147

@craig-warren
Copy link
Member Author

@Tagussan see my comments made in relation to #147

@craig-warren
Copy link
Member Author

As of v.3.1.4 (https://github.com/gprMax/gprMax/tree/v.3.1.4) the #snapshot command can be used with the GPU-accelerated solver.

@craig-warren craig-warren changed the title #snapshot & #transmission_line functionality in GPU mode #transmission_line functionality in GPU mode Jul 9, 2018
@craig-warren
Copy link
Member Author

@veer11997 This issue requires knowledge and familiarity with the Finite-Difference Time-Domain (FDTD) method and GPU programming using CUDA.

@alberto-battistel
Copy link

Is it possible to overcome the problem with #transmission_line with some post-precessing or by trickling some other parameters without modifying the core functionality?

@craig-warren
Copy link
Member Author

@alberto-battistel if you just want to obtain s-parameters then you can do that without the transmission line, i.e. by sampling the correct field components.

@alberto-battistel
Copy link

Could you point me to an example? I would like just to have an antenna model to calculate the S11 and possibly S21 with a a second antenna.

@craig-warren
Copy link
Member Author

@alberto-battistel no specific example I can point you towards. If you look at the script (plot_antenna_params.py) you will see what is required for s11 and s21. You will need to make sure you save the required field outputs in you model.

@alberto-battistel
Copy link

Thanks @craig-warren, I am checking that script, but there the S11 and S21 are calculated from V and I total and inc which are attributes of a transmission line. The calculation for the receiver which does not need to be a transmission line is still dependent on Vinc from the transmitter transmission line.
Is there a way, even an approximated one, to calculate V and I total and inc for a receiver?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants