From cf163cb27898705b4f14344ad0b9a8edc2181d35 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Fri, 19 Feb 2010 15:49:10 +0100 Subject: Split OpenCL initialisation into separate routing to avoid re-compiling all the time --- src/pattern_sim.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/pattern_sim.c') 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; } -- cgit v1.2.3