<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Блог Артёма Агасиева: заметки с тегом GPU</title>
<link>https://agasiev.com/tags/gpu/</link>
<description>Telegram: @aagasiev</description>
<author>Артём Агасиев</author>
<language>ru</language>
<generator>E2 (v3576; Aegea)</generator>

<itunes:owner>
<itunes:name>Артём Агасиев</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Telegram: @aagasiev</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Ошибка при работе с библиотекой implicit на GPU</title>
<guid isPermaLink="false">80</guid>
<link>https://agasiev.com/all/oshibka-pri-rabote-s-bibliotekoy-implicit-na-gpu/</link>
<pubDate>Mon, 03 May 2021 01:50:50 +0300</pubDate>
<author>Артём Агасиев</author>
<comments>https://agasiev.com/all/oshibka-pri-rabote-s-bibliotekoy-implicit-na-gpu/</comments>
<description>
&lt;p&gt;Работаю тут с библиотекой implicit для питона, настроил всю инфраструктуру CUDA, прописал все пути, но все равно ловил странное исключение, при попытке использования ALS на GPU:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;No CUDA extension has been built, can't train on GPU&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Чтож, идем читать исходники &lt;a href="https://github.com/benfred/implicit/blob/master/implicit/gpu/als.py"&gt;als.py&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="python"&gt;
if not implicit.gpu.HAS_CUDA:
    raise ValueError("No CUDA extension has been built, can't train on GPU.")
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Очевидно, HAS_CUDA == False, но с чего это вдруг? Находим инициализацию этой переменной в &lt;a href="https://github.com/benfred/implicit/blob/master/implicit/gpu/__init__.py"&gt;__init__.py&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class="python"&gt;
try:
    import cupy  # noqa

    from ._cuda import *  # noqa

    HAS_CUDA = True
except ImportError:
    HAS_CUDA = False
&lt;/code&gt;
&lt;/pre&gt;
&lt;p&gt;Файл _cuda — локальный, значит остается только проверить наличие &lt;a href="https://docs.cupy.dev"&gt;cupy&lt;/a&gt; на рабочей машине. И правда, все дело было именно в её отсутствии. Ну хоть сообщить то об этом нормально можно было? :(&lt;/p&gt;
&lt;p&gt;Устанавливаем по  &lt;a href="https://docs.cupy.dev/en/stable/install.html"&gt;инструкции&lt;/a&gt;, запускаем fit на ALS и вуаля, все работает. На RTX 3090 прирост скорости обучения, по сравнению с Xeon W-2265, у меня был примерно в 20 раз, на разреженной матрице размерности 300000х100000.&lt;/p&gt;
</description>
</item>


</channel>
</rss>