diff options
author | Thomas White <taw@physics.org> | 2010-02-19 15:49:10 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2010-02-19 15:49:10 +0100 |
commit | cf163cb27898705b4f14344ad0b9a8edc2181d35 (patch) | |
tree | 66954eb7ab40e43a8fa89e04206d18f388f14d86 /src/pattern_sim.c | |
parent | 6c50250a83b6db61378c3e63bd8d23d1c6e5b838 (diff) |
Split OpenCL initialisation into separate routing to avoid re-compiling all the time
Diffstat (limited to 'src/pattern_sim.c')
-rw-r--r-- | src/pattern_sim.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/pattern_sim.c b/src/pattern_sim.c index c722d2f9..54d9ab88 100644 --- a/src/pattern_sim.c +++ b/src/pattern_sim.c @@ -152,6 +152,7 @@ int main(int argc, char *argv[]) { int c; struct image image; + struct gpu_context *gctx = NULL; long long int *powder; int config_simdetails = 0; int config_nearbragg = 0; @@ -289,7 +290,11 @@ int main(int argc, char *argv[]) na, nb, nc, na*a/1.0e-9, nb*b/1.0e-9, nc*c/1.0e-9); if ( config_gpu ) { - get_diffraction_gpu(&image, na, nb, nc, config_nosfac); + if ( gctx == NULL ) { + gctx = setup_gpu(config_nosfac, &image, + image.molecule); + } + get_diffraction_gpu(gctx, &image, na, nb, nc); } else { get_diffraction(&image, na, nb, nc, config_nosfac); } @@ -354,5 +359,9 @@ skip: } while ( !done ); + if ( gctx != NULL ) { + cleanup_gpu(gctx); + } + return 0; } |