[nengo-user] trying to get spaun running on latest nengo.

Alan Grimes ALONZOTG at verizon.net
Fri Feb 21 00:12:03 EST 2014


Because the version of Nengo that ships with SPAUN doesn't seem to
support GPU, I symlinked it over into the latest Nengo, after fixing a
trivial java property naming issue in the nengo-407... scripting code, I
hit this issue... I'm a python noob so I'm not sure how serious this is:

#####

ERROR [Running...:ca.nengo.ui.script.ScriptConsole]: Runtime error in
interpreter
Traceback (most recent call last):
  File "run_spaun_lin.py", line 6, in <module>
    run(OS = "LIN", root_path = "spaun/", multi_thread = True)
  File "spaun/run_spaun.py", line 218, in run
    spaun_main.run(None, OS, root_path, test_type, test_option,
num_test_run, num_subjects, \
  File "spaun/spaun_main.py", line 1340, in run
    spaun = SpaUN()
  File "python/spa/core.py", line 30, in __init__
    self.connect()
  File "python/spa/core.py", line 90, in connect
    m.connect()
  File "python/spa/bg.py", line 38, in connect
    self.add_index_input(source,self.rules.get_learns(name),learn=True)
  File "python/spa/bg.py", line 113, in add_index_input
    t1 = self.net.get('StrD1').addIndexTermination(origin.getName(),
D1_matrix, pstc, index = indexes)
TypeError: addIndexTermination(): takes no keyword arguments

        at org.python.core.Py.TypeError(Py.java:221)
        at
org.python.core.PyReflectedFunction.throwError(PyReflectedFunction.java:209)
        at
org.python.core.PyReflectedFunction.throwError(PyReflectedFunction.java:317)
        at
org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:167)
        at org.python.core.PyObject.__call__(PyObject.java:345)
        at
org.python.core.PyMethod.instancemethod___call__(PyMethod.java:220)
        at org.python.core.PyMethod.__call__(PyMethod.java:211)
        at spa.bg$py.add_index_input$7(python/spa/bg.py:124)
        at spa.bg$py.call_function(python/spa/bg.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:194)
        at org.python.core.PyFunction.__call__(PyFunction.java:387)
        at
org.python.core.PyMethod.instancemethod___call__(PyMethod.java:220)
        at org.python.core.PyMethod.__call__(PyMethod.java:211)
        at spa.bg$py.connect$4(python/spa/bg.py:36)
        at spa.bg$py.call_function(python/spa/bg.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:134)
        at org.python.core.PyFunction.__call__(PyFunction.java:317)
        at org.python.core.PyMethod.__call__(PyMethod.java:109)
        at spa.core$py.connect$12(python/spa/core.py:89)
        at spa.core$py.call_function(python/spa/core.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:127)
        at org.python.core.PyFunction.__call__(PyFunction.java:317)
        at org.python.core.PyMethod.__call__(PyMethod.java:109)
        at spa.core$py.__init__$2(python/spa/core.py:31)
        at spa.core$py.call_function(python/spa/core.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:194)
        at org.python.core.PyFunction.__call__(PyFunction.java:387)
        at org.python.core.PyFunction.__call__(PyFunction.java:381)
        at org.python.core.PyInstance.__init__(PyInstance.java:120)
        at org.python.core.PyClass.__call__(PyClass.java:194)
        at org.python.core.PyObject.__call__(PyObject.java:371)
        at org.python.core.PyObject.__call__(PyObject.java:375)
        at spaun_main$py.run$36(spaun/spaun_main.py:1496)
        at spaun_main$py.call_function(spaun/spaun_main.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
        at org.python.core.PyFunction.function___call__(PyFunction.java:376)
        at org.python.core.PyFunction.__call__(PyFunction.java:371)
        at org.python.core.PyFunction.__call__(PyFunction.java:361)
        at run_spaun$py.run$2(spaun/run_spaun.py:218)
        at run_spaun$py.call_function(spaun/run_spaun.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
        at org.python.core.PyFunction.function___call__(PyFunction.java:376)
        at org.python.core.PyFunction.__call__(PyFunction.java:371)
        at org.python.pycode._pyx2.f$0(run_spaun_lin.py:8)
        at org.python.pycode._pyx2.call_function(run_spaun_lin.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyCode.call(PyCode.java:18)
        at org.python.core.Py.runCode(Py.java:1261)
        at org.python.core.__builtin__.execfile_flags(__builtin__.java:522)
        at
org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:225)
        at ca.nengo.ui.script.ScriptConsole$2.action(ScriptConsole.java:414)
        at
ca.nengo.ui.lib.actions.StandardAction.doActionInternal(StandardAction.java:131)
        at
ca.nengo.ui.lib.objects.activities.TrackedAction.doActionInternal(TrackedAction.java:53)
        at
ca.nengo.ui.lib.actions.StandardAction$2.run(StandardAction.java:169)
WARN  [MainThread:ca.nengo.config.ClassRegistry]: Can't register
implementation ca.nengo.math.impl.LinearCurveFitter$InterpolatedFunction
java.lang.ClassNotFoundException:
ca.nengo.math.impl.LinearCurveFitter$InterpolatedFunction
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at ca.nengo.config.ClassRegistry.register(ClassRegistry.java:184)
        at ca.nengo.config.ClassRegistry.<init>(ClassRegistry.java:95)
        at ca.nengo.config.ClassRegistry.getInstance(ClassRegistry.java:72)
        at
ca.nengo.ui.configurable.descriptors.PFunction.createConfigurableFunctions(PFunction.java:103)
        at
ca.nengo.ui.configurable.descriptors.PFunction.createInputPanel(PFunction.java:114)
        at
ca.nengo.ui.configurable.descriptors.PFunction.createInputPanel(PFunction.java:48)
        at
ca.nengo.ui.configurable.Property.getInputPanel(Property.java:116)
        at
ca.nengo.ui.configurable.managers.ConfigDialog.addDescriptors(ConfigDialog.java:360)
        at
ca.nengo.ui.configurable.managers.ConfigDialog.initialize(ConfigDialog.java:243)
        at
ca.nengo.ui.configurable.managers.ConfigDialog.<init>(ConfigDialog.java:101)
        at
ca.nengo.ui.configurable.managers.UserConfigurer.createConfigDialog(UserConfigurer.java:93)
        at
ca.nengo.ui.configurable.managers.UserConfigurer.configureAndWait(UserConfigurer.java:121)
        at
ca.nengo.ui.configurable.panels.FunctionArrayPanel.editFunctionArray(FunctionArrayPanel.java:107)
        at
ca.nengo.ui.configurable.panels.FunctionArrayPanel$EditFunctions.actionPerformed(FunctionArrayPanel.java:240)
        at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
        at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
        at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6505)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
        at java.awt.Component.processEvent(Component.java:6270)
        at java.awt.Container.processEvent(Container.java:2229)
        at java.awt.Component.dispatchEventImpl(Component.java:4861)
        at java.awt.Container.dispatchEventImpl(Container.java:2287)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
        at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
        at java.awt.Container.dispatchEventImpl(Container.java:2273)
        at java.awt.Window.dispatchEventImpl(Window.java:2719)
        at java.awt.Component.dispatchEvent(Component.java:4687)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.awt.EventQueue$4.run(EventQueue.java:708)
        at java.awt.EventQueue$4.run(EventQueue.java:706)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154)
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733)
        at java.awt.EventQueue.access$200(EventQueue.java:103)
        at java.awt.EventQueue$3.run(EventQueue.java:694)
        at java.awt.EventQueue$3.run(EventQueue.java:692)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:703)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

#####

I also took a stab at compiling NengoUtilsGPU:

#####
atg at tortoise ~/source/nengo-40790a4/NengoUtilsGPU $ make
gcc -shared -Wl,-soname,libNengoUtilsGPU.so -o libNengoUtilsGPU.so.1.0
customCudaUtils.o weightedCostApproximatorGPU.o NengoUtilsGPU_JNI.o
-L/usr/local/cuda/lib64 -L/usr/local/cula/lib64 -lcula_core
-lcula_lapack -lcublas -lcudart -lm -lc
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld:
cannot find -lcula_core
/usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld:
cannot find -lcula_lapack
collect2: error: ld returned 1 exit status
Makefile:30: recipe for target 'libNengoUtilsGPU.so' failed
make: *** [libNengoUtilsGPU.so] Error 1
atg at tortoise ~/source/nengo-40790a4/NengoUtilsGPU $
#####

Hmm, maybe I need the version of cula I can't afford.... =\

I also saw this in the status console:

Warning - VisualHeirachy: Number of items mismatch between mu and
output_vecs

-- 
IQ is a measure of how stupid you feel.

Powers are not rights.




More information about the nengo-user mailing list