Как стать автором
Обновить

Комментарии 13

Что касается типизированных массивов то все уже давно скомпилировано в numpy.

Вы не описали одну важную деталь. Для nogil есть очень существенное ограничение по типам данных, которые в функции можно использовать. Написать nogil функцию с numba - задача отнюдь не простая.

По копирайтеским статьям технология звучит как крутая. У вас был опыт с нею в проде? Легко ли собрать низковисящие фрукты просто добавив анатаций к части методов или всплывают всякие нюансы и овчинка выделки не стоит?

Овчинка выделки стоит, но не всегда - надо профилировать и смотреть на результат. Иногда становится хуже.

Numba установлена. Но прежде чем мы перейдем к коду, убедимся, что у вас также установлен NumPy,

А ничего что numba вытягивает NumPy сама? И не факт, что numba установлена, неизвестрый ей Pyhton 3.12 на дворе...

А так да, если по простому - выводит скорость Python примерно на уровень Julia. Но не Rust.

Как простому обывателю хотелось бы видеть насколько получается ускорение. Просто тайминги - как без этого и как и этим. Специально ради сравнения ставить себе все и проводить эксперимент неохота, вдруг там на 3% ускорение и оно того не стоит.

Тайминги по любому будут абстрактными. На одних задачах и наборах данных будет работать, на других нет.

У меня в основном io-bound задачи или мало данных, мне не на чем своём попробовать.

Да я хотя бы о приведенных примерах - суммирование миллиона элементов массива и т.п. Т.е. запустить этот код без numba и с ней. Наверняка будет существенный прирост.

Просто в тексте написано "можем заметить значительный прирост" а таймингов никаких. Понятно что можно себе установить, скопировать текст примера и попробовать. Но хотелось бы просто увидеть впечатляющее ускорение :)

Товарищи, немного не по теме. Но приглядитесь, пожалуйста, к изображению. Оно вызывает вопросы... и вообще не жизнеспособно (начиная с двойного зрачка, заканчивая разрезанным телом)

Зрачки норм - типичная колобома. Не знаю встречается ли у змей. Насчет положения тела - змея вполне может часть своего тела под другой пропустить и расплющить - скелет с гибкими ребрами позволяет.

в numba мне надоело, что с каждой версией они добавляют новых багов, а ряд фич нереализованы.

Я просто поставил в свой проект pip ziglang который содержит портативный llvm clang компилятор для винды/линух/мак.

При запуске моё приложение делает компиляцию C++ кода на компе пользователя необходимые функции обработки данных, а из питона через ctypes я их вызываю.

В результате я не только избавился от подобных numba jit-костылей, так что мой код теперь портативен и надежен на века, но я так же и получил в КАЖДОЙ функции скорость исполнения в 2 раза быстрее чем в numba.

Это работает только под python 13 версии?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий