Ignore:
Timestamp:
Nov 29, 2016 6:59:59 AM (8 years ago)
Author:
wojciech
Children:
9fdf302
Parents:
c2cb772
Message:

Calling CL devices from get_devices rather than create some context

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/gpu_options.py

    rc2cb772 r16c1297  
    11''' 
    2 Created on Feb 18, 2015 
     2Created on Nov 29, 2016 
    33 
    4 @author: jkrzywon 
     4@author: wpotrzebowski 
    55''' 
    6  
    7 __id__ = "$Id: acknoweldgebox.py 2015-18-02 jkrzywon $" 
    8 __revision__ = "$Revision: 1193 $" 
    96 
    107import wx 
    118import wx.richtext 
    129import wx.lib.hyperlink 
    13 import random 
    14 import os.path 
    1510import os 
     11 
     12from sas.sasgui.guiframe.documentation_window import DocumentationWindow 
     13 
    1614try: 
    1715    # Try to find a local config 
     
    4442        wx.Dialog.__init__(self, *args, **kwds) 
    4543 
    46         try: 
    47             from sasmodels.kernelcl import environment 
    48             env = environment() 
    49             clinfo = [ctx.devices[0].name 
    50                     for ctx in env.context] 
    51             clinfo.append("No OpenCL") 
    52         except ImportError: 
    53             clinfo = None 
    54  
     44        clinfo = self._get_clinfo() 
    5545        self.panel1 = wx.Panel(self, -1) 
    56         static_box1 = wx.StaticBox(self.panel1, -1, "OpenCL Options") 
     46        static_box1 = wx.StaticBox(self.panel1, -1, "Available OpenCL Options:") 
    5747 
    5848        rows = len(clinfo) 
     
    116106 
    117107        self.Centre() 
    118         #self.__set_properties() 
    119         #self.__do_layout() 
    120108 
    121     def __set_properties(self): 
    122         """ 
    123         :TODO - add method documentation 
    124         """ 
    125         self.SetTitle("Fitting on GPU Options") 
    126         self.SetSize((400, 150)) 
    127         # end wxGlade 
    128  
    129     def __do_layout(self): 
    130         """ 
    131         :TODO - add method documentation 
    132         """ 
    133         sizer_main = wx.BoxSizer(wx.VERTICAL) 
    134  
    135         self.SetAutoLayout(True) 
    136         self.SetSizer(sizer_main) 
    137         self.Layout() 
    138         self.Centre() 
    139         # end wxGlade 
     109    def _get_clinfo(self): 
     110        try: 
     111            import pyopencl as cl 
     112            devices = cl.get_platforms()[0].get_devices() 
     113            clinfo = [dev.name for dev in devices] 
     114            clinfo.append("No OpenCL") 
     115        except: 
     116            warnings.warn(str(exc)) 
     117            warnings.warn("pyopencl import failed") 
     118            clinfo = None 
     119        return clinfo 
    140120 
    141121    def OnRadio(self, event): 
    142122        import sasmodels 
    143123        button = event.GetEventObject() 
    144         print(self.option_button[button.Name]) 
    145124        os.environ["SAS_OPENCL"] = self.option_button[button.Name] 
    146125        sasmodels.kernelcl.ENV = None 
    147126        reload(sasmodels.core) 
    148         #if self.option_button[button.Name] == "None": 
    149         #    sasmodels.core.HAVE_OPENCL = False 
    150         #else: 
    151         #    sasmodels.kernelcl.ENV. 
    152127 
    153128    def OnAccept(self, event): 
     
    161136        Provide help on the selected fitter. 
    162137        """ 
    163         #if self.help is not None: 
    164         #    self.help(self._get_fitter()) 
     138        _TreeLocation = "user/gpu_computations.html" 
     139        _anchor = "#device-selection" 
     140        DocumentationWindow(self, -1, 
     141                            _TreeLocation, _anchor, "OpenCL Options Help") 
    165142 
    166143    def OnClose(self, event): 
Note: See TracChangeset for help on using the changeset viewer.