Re: [Hedge] Hedge not working with numpy 1.8
by Andreas Kloeckner

Peter17 <peter017(a)gmail.com> writes:
> I am sorry but I still have the same error even after updating Hedge:
> in test_jit_discretization.py, 13 tests are failing out of 17, with
> the same error message as below.
I fixed another issue in hedge's git tree, and
test_jit_discretization.py passes for me now.
Andreas
6 years

Re: [Hedge] Hedge not working with numpy 1.8
by Andreas Kloeckner

Peter17 <peter017(a)gmail.com> writes:
> Dear Andreas,
>
> I encounter an error when using Hedge with numpy-1.8.0.
>
> I switch between numpy-1.6.2 and numpy-1.8.0 by doing:
>
> pip uninstall numpy
> pip install -Iv numpy==1.6.2
>
> and (1.8.0):
>
> pip uninstall numpy
> pip install numpy
>
> With numpy-1.6.2, everything works fine, but with numpy-1.8.0, when I do:
>
> cd hedge/test
> python test_jit_discretization.py
>
> I get:
>
> test_jit_discretization.py FFFFF....FFFFFFFF
> (a lot of lines)
> def diff_rst(self, op, field):
> result = self.discr.volume_zeros(dtype=field.dtype)
>
> from hedge._internal import perform_elwise_operator
> for eg in self.discr.element_groups:
> perform_elwise_operator(op.preimage_ranges(eg), eg.ranges,
> op.matrices(eg)[op.rst_axis].astype(field.dtype),
>> field, result)
> E ArgumentError: Python argument types in
> E
> hedge._internal.perform_elwise_operator(UniformElementRanges,
> UniformElementRanges, numpy.ndarray, numpy.ndarray, numpy.ndarray)
> E did not match C++ signature:
> E perform_elwise_operator(hedge::uniform_element_ranges,
> hedge::uniform_element_ranges,
> boost::numeric::ublas::matrix<std::complex<double>,
> boost::numeric::ublas::basic_row_major<unsigned long, long>,
> boost::numeric::ublas::unbounded_array<std::complex<double>,
> std::allocator<std::complex<double> > > >,
> pyublas::numpy_vector<std::complex<double> >,
> pyublas::numpy_vector<std::complex<double> >)
> E perform_elwise_operator(hedge::uniform_element_ranges,
> hedge::uniform_element_ranges,
> boost::numeric::ublas::matrix<std::complex<float>,
> boost::numeric::ublas::basic_row_major<unsigned long, long>,
> boost::numeric::ublas::unbounded_array<std::complex<float>,
> std::allocator<std::complex<float> > > >,
> pyublas::numpy_vector<std::complex<float> >,
> pyublas::numpy_vector<std::complex<float> >)
> E perform_elwise_operator(hedge::uniform_element_ranges,
> hedge::uniform_element_ranges, boost::numeric::ublas::matrix<double,
> boost::numeric::ublas::basic_row_major<unsigned long, long>,
> boost::numeric::ublas::unbounded_array<double, std::allocator<double>
>> >, pyublas::numpy_vector<double>, pyublas::numpy_vector<double>)
> E perform_elwise_operator(hedge::uniform_element_ranges,
> hedge::uniform_element_ranges, boost::numeric::ublas::matrix<float,
> boost::numeric::ublas::basic_row_major<unsigned long, long>,
> boost::numeric::ublas::unbounded_array<float, std::allocator<float> >
>>, pyublas::numpy_vector<float>, pyublas::numpy_vector<float>)
>
> ../hedge/backends/jit/__init__.py:489: ArgumentError
>
> I have the same error when running the example wave.py (I don't have
> much time to test the other examples). However, this example works
> well in CUDA. The error seems to be due to pyublas.
>
> Do you have an idea on how I can have Hedge work with numpy-1.8.0?
>
> Thanks in advance. Best regards.
Fixed in git.
Andreas
6 years

Hedge not working with numpy 1.8
by Peter17

Dear Andreas,
I encounter an error when using Hedge with numpy-1.8.0.
I switch between numpy-1.6.2 and numpy-1.8.0 by doing:
pip uninstall numpy
pip install -Iv numpy==1.6.2
and (1.8.0):
pip uninstall numpy
pip install numpy
With numpy-1.6.2, everything works fine, but with numpy-1.8.0, when I do:
cd hedge/test
python test_jit_discretization.py
I get:
test_jit_discretization.py FFFFF....FFFFFFFF
(a lot of lines)
def diff_rst(self, op, field):
result = self.discr.volume_zeros(dtype=field.dtype)
from hedge._internal import perform_elwise_operator
for eg in self.discr.element_groups:
perform_elwise_operator(op.preimage_ranges(eg), eg.ranges,
op.matrices(eg)[op.rst_axis].astype(field.dtype),
> field, result)
E ArgumentError: Python argument types in
E
hedge._internal.perform_elwise_operator(UniformElementRanges,
UniformElementRanges, numpy.ndarray, numpy.ndarray, numpy.ndarray)
E did not match C++ signature:
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges,
boost::numeric::ublas::matrix<std::complex<double>,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<std::complex<double>,
std::allocator<std::complex<double> > > >,
pyublas::numpy_vector<std::complex<double> >,
pyublas::numpy_vector<std::complex<double> >)
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges,
boost::numeric::ublas::matrix<std::complex<float>,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<std::complex<float>,
std::allocator<std::complex<float> > > >,
pyublas::numpy_vector<std::complex<float> >,
pyublas::numpy_vector<std::complex<float> >)
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges, boost::numeric::ublas::matrix<double,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<double, std::allocator<double>
> >, pyublas::numpy_vector<double>, pyublas::numpy_vector<double>)
E perform_elwise_operator(hedge::uniform_element_ranges,
hedge::uniform_element_ranges, boost::numeric::ublas::matrix<float,
boost::numeric::ublas::basic_row_major<unsigned long, long>,
boost::numeric::ublas::unbounded_array<float, std::allocator<float> >
>, pyublas::numpy_vector<float>, pyublas::numpy_vector<float>)
../hedge/backends/jit/__init__.py:489: ArgumentError
I have the same error when running the example wave.py (I don't have
much time to test the other examples). However, this example works
well in CUDA. The error seems to be due to pyublas.
Do you have an idea on how I can have Hedge work with numpy-1.8.0?
Thanks in advance. Best regards.
--
Peter Potrowl
6 years