Changeset a4280bd in sasmodels for sasmodels/kernelcl.py


Ignore:
Timestamp:
Jul 25, 2016 11:54:30 PM (8 years ago)
Author:
Paul Kienzle <pkienzle@…>
Branches:
master, core_shell_microgels, costrafo411, magnetic_model, release_v0.94, release_v0.95, ticket-1257-vesicle-product, ticket_1156, ticket_1265_superball, ticket_822_more_unit_tests
Children:
2f5c6d4
Parents:
2c74c11
Message:

restructure magnetic models to use less code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sasmodels/kernelcl.py

    r9eb3632 ra4280bd  
    284284            logging.info("building %s for OpenCL %s" 
    285285                         % (key, context.devices[0].name.strip())) 
    286             program = compile_model(context, source, np.dtype(dtype), fast) 
    287             #print("OpenCL compile",name) 
    288             dtype = np.dtype(dtype) 
    289286            program = compile_model(self.get_context(dtype), 
    290287                                    str(source), dtype, fast) 
     
    369366    """ 
    370367    def __init__(self, source, model_info, dtype=generate.F32, fast=False): 
    371         # type: (str, ModelInfo, np.dtype, bool) -> None 
     368        # type: (Dict[str,str], ModelInfo, np.dtype, bool) -> None 
    372369        self.info = model_info 
    373370        self.source = source 
     
    388385        # type: (List[np.ndarray]) -> "GpuKernel" 
    389386        if self.program is None: 
    390             compiler = environment().compile_program 
    391             self.program = compiler(self.info.name, self.source, 
    392                                     self.dtype, self.fast) 
    393             names = [generate.kernel_name(self.info, variant) 
    394                      for variant in ("Iq", "Iqxy", "Imagnetic")] 
    395             self._kernels = [getattr(self.program, name) for name in names] 
     387            compile_program = environment().compile_program 
     388            self.program = compile_program( 
     389                self.info.name, 
     390                self.source['opencl'], 
     391                self.dtype, 
     392                self.fast) 
     393            variants = ['Iq', 'Iqxy', 'Imagnetic'] 
     394            names = [generate.kernel_name(self.info, k) for k in variants] 
     395            kernels = [getattr(self.program, k) for k in names] 
     396            self._kernels = dict((k,v) for k,v in zip(variants, kernels)) 
    396397        is_2d = len(q_vectors) == 2 
    397         kernel = self._kernels[1:3] if is_2d else [self._kernels[0]]*2 
     398        if is_2d: 
     399            kernel = [self._kernels['Iqxy'], self._kernels['Imagnetic']] 
     400        else: 
     401            kernel = [self._kernels['Iq']]*2 
    398402        return GpuKernel(kernel, self.dtype, self.info, q_vectors) 
    399403 
Note: See TracChangeset for help on using the changeset viewer.