The code :::: Does anyone can help me with this ?
from numba import vectorize
#vectorize(['int64(int64, int64)'], target='cuda')
def add_ufunc(x, y):
return x + y
print('a+b:\n', add_ufunc(a, b))
print()
print('b_col + c:\n', add_ufunc(b_col, c))
The error ::::
Traceback (most recent call last): File "array.py", line 1, in
from numba import vectorize File "/usr/lib/python3.7/site-packages/numba/init.py", line 11, in
from . import config, errors, _runtests as runtests, types File "/usr/lib/python3.7/site-packages/numba/config.py", line 9, in
import multiprocessing File "/usr/lib/python3.7/multiprocessing/init.py", line 16, in
from . import context File "/usr/lib/python3.7/multiprocessing/context.py", line 6, in
from . import reduction File "/usr/lib/python3.7/multiprocessing/reduction.py", line 136, in
import array File "/home/felipe/cuda/array.py", line 1, in
from numba import vectorize ImportError: cannot import name 'vectorize' from 'numba'
(/usr/lib/python3.7/site-packages/numba/init.py)
Related
I am having a problem with python and pyopengl
I am just importing the modules, and getting errors, I checked and pip did install opengl and everything.
Here is my code
# ulWindow
import ulMath as ulm
import OpenGL.GL as gl
import OpenGL.GlE as gle
import glfw
def init() ->int|str:
if (not glfw.init()):
return "GLFW Failed to initialize"
return 0
And the error im getting:
Traceback (most recent call last):
File "src/ulWindow.py", line 3, in <module>
import OpenGL.GL as gl
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/GL/__init__.py", line 4, in <module>
from OpenGL.GL.VERSION.GL_1_1 import *
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/GL/VERSION/GL_1_1.py", line 14, in <module>
from OpenGL.raw.GL.VERSION.GL_1_1 import *
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/raw/GL/VERSION/GL_1_1.py", line 7, in <module>
from OpenGL.raw.GL import _errors
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/raw/GL/_errors.py", line 4, in <module>
_error_checker = _ErrorChecker( _p, _p.GL.glGetError )
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/error.py", line 183, in __init__
self._isValid = platform.CurrentContextIsValid
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/platform/baseplatform.py", line 15, in __get__
value = self.fget( obj )
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/platform/baseplatform.py", line 356, in CurrentContextIsValid
return self.GetCurrentContext
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/platform/baseplatform.py", line 15, in __get__
value = self.fget( obj )
File "/home/jack3/.local/lib/python3.8/site-packages/OpenGL/platform/egl.py", line 106, in GetCurrentContext
return self.EGL.eglGetCurrentContext
AttributeError: 'NoneType' object has no attribute 'eglGetCurrentContext'
I have absolutely no clue what is going on, can someone help me out?
I am trying to get into numba gpu processing. I have this MWE:
import numpy as np
import numba
#numba.njit
def function():
ar = np.zeros((3, 3))
for i in range(3):
ar[i] = (1, 2, 3)
return ar
ar = function()
print(ar)
Output:
[[1. 2. 3.]
[1. 2. 3.]
[1. 2. 3.]]
Now I want to run it on my gpu. I tried using following decorators:
#numba.njit(target='cuda')
#numba.njit(target='gpu')
#numba.cuda.jit
none of which work. Here are the error messages of above decorators:
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 4, in <module>
#numba.jit(target='cuda')
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/decorators.py", line 171, in jit
targetoptions=options, **dispatcher_args)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/decorators.py", line 179, in _jit
dispatcher = registry.dispatcher_registry[target]
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/registry.py", line 96, in __getitem__
return super(TargetRegistry, self).__getitem__(item)
KeyError: 'cuda'
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 4, in <module>
#numba.njit(target='gpu')
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/decorators.py", line 236, in njit
return jit(*args, **kws)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/decorators.py", line 171, in jit
targetoptions=options, **dispatcher_args)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/decorators.py", line 179, in _jit
dispatcher = registry.dispatcher_registry[target]
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/registry.py", line 96, in __getitem__
return super(TargetRegistry, self).__getitem__(item)
KeyError: 'gpu'
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 4, in <module>
#numba.cuda.jit()
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/__init__.py", line 140, in __getattr__
) from None
AttributeError: module 'numba' has no attribute 'cuda'
numba.cuda is not even recognized as module function. I have numba 49.1 and cudatoolkit 9.0 installed.
Do I have to change the function for this to work? I have a huge numba.njit function that I need to run on a gpu.
I was trying to learn more about numba's cuda implementation from:
http://numba.pydata.org/numba-doc/0.16.0/modules/numba.cuda.html
Thank you in advance.
Edit:
As #talonmies proposed I imported cuda explicitly from the numba module and outsourced the array creation:
import numpy as np
import numba
from numba import cuda
#numba.njit(target='cuda')
def function(ar=None):
for i in range(3):
ar[i] = (1, 2, 3)
return ar
ar = np.zeros((3, 3))
ar_result = function(ar=ar)
print(ar_result)
Output:
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 12, in <module>
ar_result = function(ar=ar)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/cuda/dispatcher.py", line 40, in __call__
return self.compiled(*args, **kws)
TypeError: __call__() got an unexpected keyword argument 'ar'
This error occurs with every of the aforementioned decorators except #numba.njit.
Edit_2:
When I try to run:
import numpy as np
import numba
from numba import cuda
#numba.jit(target='cuda')
def function(ar):
for i in range(3):
ar[i] = (1,2,3)
ar = np.zeros((3, 3))
function(ar)
print(ar)
the output is:
Traceback (most recent call last):
File "/home/amu/Desktop/RL_framework/help_functions/test.py", line 11, in <module>
function(ar)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/cuda/dispatcher.py", line 40, in __call__
return self.compiled(*args, **kws)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/cuda/compiler.py", line 758, in __call__
kernel = self.specialize(*args)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/cuda/compiler.py", line 769, in specialize
kernel = self.compile(argtypes)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/cuda/compiler.py", line 785, in compile
**self.targetoptions)
File "/home/amu/anaconda3/lib/python3.7/site-packages/numba/core/compiler_lock.py", line 32, in _acquire_compile_lock
return func(*args, **kwargs)
TypeError: compile_kernel() got an unexpected keyword argument 'boundscheck'
Three points:
You have to explicitly import the cuda module from numba to use it (this isn't specific to numba, all python libraries work like this)
The nopython mode (njit) doesn't support the CUDA target
Array creation, return values, keyword arguments are not supported in Numba for CUDA code
I can fix all that like this:
...: import numpy as np
...: import numba
...: from numba import cuda
...:
...: #numba.jit(target='cuda')
...: def function(ar):
...: for i in range(3):
...: ar[i] = (1,2,3)
...:
...: ar = np.zeros((3, 3))
...: function(ar)
...: print(ar)
[[1. 2. 3.]
[1. 2. 3.]
[1. 2. 3.]]
When I import pandas library in python 3 it gave me a error.
Traceback (most recent call last):
File "C:\Users\KESHAV SHARMA\Desktop\VS Code\Compiler\as.py", line 1, in
import pandas as pd
File "C:\Users\KESHAV SHARMA\AppData\Roaming\Python\Python38\site-packages\pandas__init__.py", line 124, in
from pandas.core.computation.api import eval
File "C:\Users\KESHAV SHARMA\AppData\Roaming\Python\Python38\site-packages\pandas\core\computation\api.py", line 3, in
from pandas.core.computation.eval import eval
File "C:\Users\KESHAV SHARMA\AppData\Roaming\Python\Python38\site-packages\pandas\core\computation\eval.py", line 15, in
from pandas.core.computation.expr import Expr, _parsers
File "C:\Users\KESHAV SHARMA\AppData\Roaming\Python\Python38\site-packages\pandas\core\computation\expr.py", line 158, in
_all_nodes = frozenset(
File "C:\Users\KESHAV SHARMA\AppData\Roaming\Python\Python38\site-packages\pandas\core\computation\expr.py", line 160, in
lambda x: isinstance(x, type) and issubclass(x, ast.AST),
AttributeError: module 'ast' has no attribute 'AST'
Please help me to sort out this problem.
Try using only ast instead of ast.AST
lambda x: isinstance(x, type) and issubclass(x, ast)
I'm trying to run script like below in atom (or in pycharm)
import numpy as np
def bar(num_elems):
restrained_dofs = 0
m = np.array([[2,1], [1,2]]) / (6. * num_elems)
k = np.array([[1,-1],[-1,1]]) * num_elems
M = np.zeros((num_elems+1,num_elems+1))
K = np.zeros((num_elems+1,num_elems+1))
for i in range(num_elems):
M_temp = np.zeros((num_elems+1,num_elems+1))
K_temp = np.zeros((num_elems+1,num_elems+1))
M_temp[i:i+2,i:i+2] = m
K_temp[i:i+2,i:i+2] = k
M += M_temp
K += K_temp
for dof in range(restrained_dofs):
for i in [0,1]:
M = np.delete(M, dof, axis=i)
K = np.delete(K, dof, axis=i)
bar(1)
and I recive following terminal output
Traceback (most recent call last):
File "D:/Programowanie/Python/bar_elem.py", line 1, in <module>
import numpy as np
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\__init__.py", line 142, in <module>
from . import add_newdocs
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
from numpy.lib import add_newdoc
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
from .type_check import *
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
import numpy.core.numeric as _nx
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core\__init__.py", line 35, in <module>
from . import _internal # for freeze programs
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\core\_internal.py", line 12, in <module>
from numpy.compat import basestring, unicode
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\compat\__init__.py", line 14, in <module>
from . import py3k
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\site-packages\numpy\compat\py3k.py", line 14, in <module>
from pathlib import Path
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\pathlib.py", line 13, in <module>
from urllib.parse import quote_from_bytes as urlquote_from_bytes
File "C:\Users\Admin\AppData\Local\Programs\Python\Python37\lib\urllib\parse.py", line 597, in <module>
_asciire = re.compile('([\x00-\x7f]+)')
AttributeError: module 're' has no attribute 'compile'
But the same script is working correctly while using Spyder3 or in Terminal.
I'm running script wit Script packacge in Atom, but other packages gives the same result.
Python 3.7.1,
Numpy 1.15.4
The problem was that the script was placed in a folder named Python, after moving it to another location everything works fine
Keeping it simple:
----------------------------------
from mpmath import *
from scipy.integrate import *
mp.dps=30
def F(x):
return Q**(x)
Q=735
print fixed_quad(F,0,1,n=1)[0]
print fixed_quad(F,0,1,n=2)[0]
print fixed_quad(F,0,1,n=3)[0]
--------------------
returns
27.1108834235
93.1213589089
109.673420158
However, if I change F(x) from “Q**(x)” to even just a simple function—e.g., “cos(x)”—I get
--------------------
Traceback (most recent call last):
File "Test.py", line 7, in <module>
print fixed_quad(F,0,1,n=1)[0]
File "/usr/lib/python2.7/dist-packages/scipy/integrate/quadrature.py", line 67, in fixed_quad
return (b-a)/2.0*sum(w*func(y,*args),0), None
File "Test.py", line 5, in F
return cos(x)
File "/usr/lib/pymodules/python2.7/mpmath/ctx_mp_python.py", line 984, in f
x = ctx.convert(x)
File "/usr/lib/pymodules/python2.7/mpmath/ctx_mp_python.py", line 662, in convert
return ctx._convert_fallback(x, strings)
File "/usr/lib/pymodules/python2.7/mpmath/ctx_mp.py", line 614, in _convert_fallback
raise TypeError("cannot create mpf from " + repr(x))
TypeError: cannot create mpf from array([ 0.5])
Is this some known bug? Or is “fixed_quad” only meant for certain uses, not general integration (like “trapz”)?
All of the other regulars (“quad”, “dblquad”, “tplquad”, “nquad”) donʼt seem to have that problem/error.