<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.mywolfram.ru/index.php?action=history&amp;feed=atom&amp;title=WSL2_%D0%B8_CUDA</id>
	<title>WSL2 и CUDA - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mywolfram.ru/index.php?action=history&amp;feed=atom&amp;title=WSL2_%D0%B8_CUDA"/>
	<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=WSL2_%D0%B8_CUDA&amp;action=history"/>
	<updated>2026-05-28T20:42:58Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.mywolfram.ru/index.php?title=WSL2_%D0%B8_CUDA&amp;diff=279&amp;oldid=prev</id>
		<title>Владимир: Новая страница: «WSL2 и CUDA  &#039;&#039;&#039;ОС&#039;&#039;&#039; - все подобные системы полностью развертываются на linux, ни какой речи о инте...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.mywolfram.ru/index.php?title=WSL2_%D0%B8_CUDA&amp;diff=279&amp;oldid=prev"/>
		<updated>2020-08-23T10:46:32Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «WSL2 и CUDA  &amp;#039;&amp;#039;&amp;#039;ОС&amp;#039;&amp;#039;&amp;#039; - все подобные системы полностью развертываются на linux, ни какой речи о инте...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;WSL2 и CUDA&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ОС&amp;#039;&amp;#039;&amp;#039; - все подобные системы полностью развертываются на linux, ни какой речи о интерфейсах, собирай сам, запускай сам, конфигурируюй текстом. Русский? Не не слышал...&lt;br /&gt;
&lt;br /&gt;
Но все же в 2020 мы живем. И знал я, что есть в Windows некий linux, именуется &amp;#039;&amp;#039;&amp;#039;WSL&amp;#039;&amp;#039;&amp;#039;. что он якобы работает нативно, как на железе. Дай опробую. И каково было моё удивление, оказывается нас обманули, linux то ограниченный. И не о каких аппаратных фишках и не слышно.&lt;br /&gt;
&lt;br /&gt;
Что за аппаратные фишки? Ну это же &amp;#039;&amp;#039;&amp;#039;AI&amp;#039;&amp;#039;&amp;#039; - &amp;quot;искусственный интеллект&amp;quot;, нейросеть. И исполняется это все на тензорных вычислительных блоках. Такие, как раз есть в видеокартах, а 20 серии так вообще, всем проели мозги. В общем &amp;#039;&amp;#039;&amp;#039;CUDA&amp;#039;&amp;#039;&amp;#039;. Конечно же можно выполнять все и на &amp;#039;&amp;#039;&amp;#039;CPU&amp;#039;&amp;#039;&amp;#039;. Точнее &amp;#039;&amp;#039;&amp;#039;не всегда&amp;#039;&amp;#039;&amp;#039;, не все AI лежащие на &amp;#039;&amp;#039;&amp;#039;github&amp;#039;&amp;#039;&amp;#039; могут на &amp;#039;&amp;#039;&amp;#039;CPU&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
В итоге, я задался вопросом а как же все таки быть с CUDA, и вычислениями силой видеокарты. Изучение интернета привело меня на сайт &amp;#039;&amp;#039;&amp;#039;NVIDIA,&amp;#039;&amp;#039;&amp;#039; как ни странно. [https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract Страницу рассказывающую как заставить работать CUDA и вообще аппаратное ускорение в WSL]. Я начал не особо вчитываясь выполнять все что там описано, &amp;#039;&amp;#039;&amp;#039;но четно&amp;#039;&amp;#039;&amp;#039;. Оказалось в мануале написано, что работать такая тема будет только на версии &amp;#039;&amp;#039;&amp;#039;Windows 20145&amp;#039;&amp;#039;&amp;#039;, на тот момент версия Windows была 19ххх. Обновился на последний билд по инснайдерской программе. Так же нужен был &amp;#039;&amp;#039;&amp;#039;драйвер Nvidia&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;455.41&amp;#039;&amp;#039;&amp;#039; и выше. Сделал. И снова облом. Следование инструкциям мануала nvidia не приводило ни к чему, что могло бы показать что аппаратные блоки задействованы. Прошло время и на Windows прилетело обновление. &amp;#039;&amp;#039;&amp;#039;Животворящее обновление!&amp;#039;&amp;#039;&amp;#039; После которого следовании инструкциям &amp;#039;&amp;#039;&amp;#039;NVIDIA&amp;#039;&amp;#039;&amp;#039; наконец дало результаты. Наконец то удалось сделать все. В конечном счете я понял, что &amp;#039;&amp;#039;&amp;#039;Docker из магазина&amp;#039;&amp;#039;&amp;#039; windows бесполезен, и лучше его нативно устанавливать в &amp;#039;&amp;#039;&amp;#039;ОС WSL&amp;#039;&amp;#039;&amp;#039;. Так и сделал, в таком докере заработали и образы требующие CUDA. Точнее тестовые образы с сайта &amp;#039;&amp;#039;&amp;#039;NVIDIA&amp;#039;&amp;#039;&amp;#039;, но не вышеперечисленные. Они все также работали на CPU, так как были собраны давно, и не о каких последних драйверах NVIDIA, не слышали.&lt;br /&gt;
&lt;br /&gt;
Хорошо. Вступление, пора заканчивать.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Подготовка ОС===&lt;br /&gt;
Последний &amp;#039;&amp;#039;&amp;#039;билд 20145&amp;#039;&amp;#039;&amp;#039; или выше, обновления &amp;#039;&amp;#039;&amp;#039;Windows 2004&amp;#039;&amp;#039;&amp;#039; на момент 20.05.20 (это dev билд, можно получить по инсайдерской программе)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;NVIDIA драйвер 455.41&amp;#039;&amp;#039;&amp;#039; и выше.&lt;br /&gt;
&lt;br /&gt;
Далее следуем инструкции [https://docs.nvidia.com/cuda/wsl-user-guide/index.html#abstract &amp;#039;&amp;#039;&amp;#039;CUDA on WSL User Guide&amp;#039;&amp;#039;&amp;#039;], ну да, конечно же я все продублирую и поясню своими словами, чтобы понять самому и может быть когда нибудь...&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Из мануала:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Подсистема Windows для Linux (WSL) - это функция Windows 10, которая позволяет пользователям запускать встроенные средства командной строки Linux непосредственно в Windows. WSL - это контейнерная среда, в которой пользователи могут запускать собственные приложения Linux из командной строки оболочки Windows 10, не требуя сложности среды двойной загрузки. Внутренне WSL тесно интегрирован с операционной системой Microsoft Windows, что позволяет ему запускать приложения Linux наряду с традиционными приложениями Windows для настольных компьютеров и современными магазинами.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Используя технологии паравиртуализации WSL 2 и GPU, Microsoft позволяет разработчикам запускать приложения с ускорением на GPU в Windows.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;В следующем документе описывается рабочий процесс для начала работы с приложениями или контейнерами CUDA в среде WSL 2.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Установка WSL 2====&lt;br /&gt;
В этом разделе содержатся подробные сведения об установке WSL 2, включая настройку дистрибутива Linux на ваш выбор в Магазине Microsoft .&lt;br /&gt;
&lt;br /&gt;
Запустите &amp;#039;&amp;#039;&amp;#039;PowerShell&amp;#039;&amp;#039;&amp;#039; с правами администратора и выполните следующую команду.&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
Скачивание пакета обновления ядра Linux, как ни странно на данный момент нет нормального места где взять установщик. Прямая ссылка на него есть на [https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel данной странице].&lt;br /&gt;
&lt;br /&gt;
Так же ссылка на этот файл с [https://nc.mywolfram.ru/s/Lb2BZLm9Nx4FiMx моего облака], на всякий случай.&lt;br /&gt;
&lt;br /&gt;
Устанавливаем как обычную программу.&lt;br /&gt;
&lt;br /&gt;
Запустите &amp;#039;&amp;#039;&amp;#039;PowerShell&amp;#039;&amp;#039;&amp;#039; с правами администратора и выполните следующую команду. Включаем компонент &amp;quot;Virtual Machine Platform&amp;quot; (Платформа виртуальных машин).&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Перезапустите компьютер&amp;#039;&amp;#039;&amp;#039;, чтобы завершить установку и обновление &amp;#039;&amp;#039;&amp;#039;WSL до WSL 2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Выполните следующую команду в &amp;#039;&amp;#039;&amp;#039;PowerShell&amp;#039;&amp;#039;&amp;#039;, чтобы задать &amp;#039;&amp;#039;&amp;#039;WSL 2&amp;#039;&amp;#039;&amp;#039; в качестве версии по умолчанию при установке нового дистрибутива Linux:&lt;br /&gt;
 wsl --set-default-version 2&lt;br /&gt;
Убедитесь, что у вас установлено последнее ядро:&lt;br /&gt;
 wsl cat /proc/version&lt;br /&gt;
Должно показать &amp;#039;&amp;#039;&amp;#039;не ниже 4.19.121&amp;#039;&amp;#039;&amp;#039;, если ниже то включаем обновление &amp;quot;&amp;#039;&amp;#039;&amp;#039;для других продуктов Макрососфт&amp;#039;&amp;#039;&amp;#039;&amp;quot; в настройках обновлений. Проверяем обновления, если есть дожидаемся окончания установки.&lt;br /&gt;
&lt;br /&gt;
Теперь загружаем контейнерную ОС из магазина Windows. Просто пишем в нём: Ubuntu. Я выбрал 18.04. Загружаем.&lt;br /&gt;
&lt;br /&gt;
Ссылка на запуск появляется в меню &amp;#039;&amp;#039;&amp;#039;Пуск&amp;#039;&amp;#039;&amp;#039;, первый запуск запросит &amp;#039;&amp;#039;&amp;#039;имя пользователя и пароль&amp;#039;&amp;#039;&amp;#039;. У меня это vova:01082008.&lt;br /&gt;
&lt;br /&gt;
Проверим что она работает как нужно и узнаем версию:&lt;br /&gt;
 uname -r&lt;br /&gt;
ответ должен быть подобным этому:&lt;br /&gt;
 4.19.121-microsoft-standard&lt;br /&gt;
Готово &amp;#039;&amp;#039;&amp;#039;WSL2 установлен&amp;#039;&amp;#039;&amp;#039;. И теперь все контейнеры будут выполняться по умолчанию в новой версии.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Настройка CUDA Toolkit====&lt;br /&gt;
Сначала настройте сетевой репозиторий &amp;#039;&amp;#039;&amp;#039;CUDA&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
 sudo apt-key adv --fetch-keys &amp;lt;nowiki&amp;gt;http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 sudo sh -c &amp;#039;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64&amp;lt;/nowiki&amp;gt; /&amp;quot; &amp;gt; /etc/apt/sources.list.d/cuda.list&amp;#039;&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
Теперь установите CUDA. Устанавливаем именно &amp;#039;&amp;#039;&amp;#039;11.0&amp;#039;&amp;#039;&amp;#039;, только данная версия работает с WSL2&lt;br /&gt;
 sudo apt-get install -y cuda-toolkit-11-0&lt;br /&gt;
====Запуск приложений CUDA (Тест)====&lt;br /&gt;
Просто запустите ваше приложение CUDA, как если бы вы запускали его под Linux! После установки драйвера больше не нужно ничего делать для запуска существующих приложений CUDA, созданных на Linux.&lt;br /&gt;
&lt;br /&gt;
Ниже приведен фрагмент запуска приложения &amp;#039;&amp;#039;&amp;#039;BlackScholes&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
 cd /usr/local/cuda/samples/4_Finance/BlackScholes&lt;br /&gt;
&amp;#039;&amp;#039;Казалось бы что могло пойти не так, но я не мог выполнить следующую команду. Как оказалось нужно было выполнить &amp;#039;&amp;#039;&amp;#039;make!&amp;#039;&amp;#039;&amp;#039; Вот тут как бы весь линукс! От куда мне было знать о том что нужно собирать этот &amp;#039;&amp;#039;&amp;#039;BlackScholes&amp;#039;&amp;#039;&amp;#039;? Да неоткуда. Просто видимо приснится должно было...&amp;#039;&amp;#039;&lt;br /&gt;
 &amp;#039;&amp;#039;&amp;#039;sudo make&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
После чего уже можно запустить тест:&lt;br /&gt;
 ./BlackScholes&lt;br /&gt;
И должны увидеть:&lt;br /&gt;
 Initializing data...&lt;br /&gt;
 ...allocating CPU memory for options.&lt;br /&gt;
 ...allocating GPU memory for options.&lt;br /&gt;
 ...generating input data in CPU mem.&lt;br /&gt;
 ...copying input data to GPU mem.&lt;br /&gt;
 Data init done.&lt;br /&gt;
 &lt;br /&gt;
 Executing Black-Scholes GPU kernel (131072 iterations)...&lt;br /&gt;
 Options count             : 8000000&lt;br /&gt;
 BlackScholesGPU() time    : 1.314299 msec&lt;br /&gt;
 Effective memory bandwidth: 60.868973 GB/s&lt;br /&gt;
 Gigaoptions per second    : 6.086897&lt;br /&gt;
 &lt;br /&gt;
 ...&lt;br /&gt;
С установкой NVIDIA закончили. Пора приступать к AI.&lt;/div&gt;</summary>
		<author><name>Владимир</name></author>
	</entry>
</feed>