pyCuda и gpuarray.maximum отличается от numpy

Возможно, я что-то упустил. Я использую Pycuda и у меня есть следующая матрица m_gpu:

>>> m_gpu
array([[ 0., 2., 4., 1., 3.],
       [ 2., 0., 5., 2., 1.],
       [ 4., 5., 0., 3., 2.],
       [ 1., 2., 3., 0., 4.],
       [ 3., 1., 2., 4., 0.]], dtype=float32)

Я печатаю первый столбец и вторую строку для проверки работоспособности:

>>> m_gpu[:,1]
array([ 2., 0., 5., 2., 1.], dtype=float32)
>>> m_gpu[2,:]
array([ 4., 5., 0., 3., 2.], dtype=float32)

Затем я делаю поэлементное сравнение, чтобы вернуть массив максимальных значений, что неверно, поскольку 3-й элемент должен быть "5", но это "1":

>>> gpuarray.maximum(m_gpu[:,1], m_gpu[2,:])
array([ 4., 5., 1., 3., 2.], dtype=float32)

Может ли быть ошибка в gpuarray.maximum? Кажется маловероятным Я делаю ту же операцию, используя обычный numpy, и он возвращает правильные значения. Использование pycuda-2017.1.1+cuda8061-cp27 в Windows. Помогите? Благодарю.

0 ответов

Другие вопросы по тегам