implicit icon indicating copy to clipboard operation
implicit copied to clipboard

RuntimeError: Cuda Error: unknown error (implicit/cuda/matrix.cu:47)

Open MartinThoma opened this issue 4 years ago • 0 comments

Error message

Create movies which are rated...
Create users which did rate...
Create ratings...
Traceback (most recent call last):
  File "example.py", line 25, in <module>
    model.fit(item_user_data)
  File "/home/moose/GitHub/algorithms/ML/movielens-20m/ml-20m/venv-one/lib/python3.6/site-packages/implicit/als.py", line 149, in fit
    return self._fit_gpu(Ciu, Cui, show_progress)
  File "/home/moose/GitHub/algorithms/ML/movielens-20m/ml-20m/venv-one/lib/python3.6/site-packages/implicit/als.py", line 188, in _fit_gpu
    Ciu = implicit.cuda.CuCSRMatrix(Ciu_host)
  File "implicit/cuda/_cuda.pyx", line 73, in implicit.cuda._cuda.CuCSRMatrix.__cinit__
RuntimeError: Cuda Error: unknown error (implicit/cuda/matrix.cu:47)

How to reproduce

Environment

$ python --version
Python 3.6.8

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

$ pip freeze
Click==7.0
implicit==0.3.8
joblib==0.13.2
numpy==1.16.4
pandas==0.24.2
pkg-resources==0.0.0
python-dateutil==2.8.0
pytz==2019.1
scikit-learn==0.21.2
scipy==1.3.0
six==1.12.0
sklearn==0.0
tqdm==4.32.2

Run OPENBLAS_NUM_THREADS=1 python example.py

import random
from scipy.sparse import csr_matrix

import implicit

nb_ratings = 10_000_000
nb_movies = 2_000
nb_users = 100_000
factors = 64

model = implicit.als.AlternatingLeastSquares(factors=factors)

print('Create movies which are rated...')
row = [random.randint(0, nb_movies) for i in range(nb_ratings)]

print('Create users which did rate...')
col = [random.randint(0, nb_users) for i in range(nb_ratings)]

print('Create ratings...')
data = [random.randint(0, 5) for i in range(nb_ratings)]


item_user_data = csr_matrix((data, (row, col)),
                            shape=(max(row) + 1, max(col) + 1))
model.fit(item_user_data)

MartinThoma avatar Jul 13 '19 06:07 MartinThoma