Taichi programming language
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 07.01.20 20:06
Оценка: 8 (2) +1
Вот он здесь или на гитхабе. Пилится с бешеной скоростью одним чуваком из MIT и, кажется, является конкурентом Halide. Типа язык для написания очень производительного кода для параллельных вычислений и при этом дифференцируемый. Кажется, что на нём можно переписать тот же TensorFlow и он станет быстрее. И не заморачиваться со Swift.
учитывая, что в этой области сейчас как-то тухло, для для CUDA конкурентов нет, но она только на Nvidia, то что-то должно выстрелить в конце концов. Кто-нибудь смотрел, пробовал, запускал что-нибудь на этом Taichi?
Re: Taichi programming language
От: Mamut Швеция http://dmitriid.com
Дата: 07.01.20 22:43
Оценка:
N>Вот он здесь или на гитхабе. Пилится с бешеной скоростью одним чуваком из MIT и, кажется, является конкурентом Halide. Типа язык для написания очень производительного кода для параллельных вычислений и при этом дифференцируемый. Кажется, что на нём можно переписать тот же TensorFlow

Вот так все бегом ломанулись переписывать TensorFlow на taichi. А до этого — на Halide. А до этого — на Pony.


dmitriid.comGitHubLinkedIn
Re: Taichi programming language
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.01.20 23:54
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Вот он здесь или на гитхабе. Пилится с бешеной скоростью одним чуваком из MIT и, кажется, является конкурентом Halide. Типа язык для написания очень производительного кода для параллельных вычислений и при этом дифференцируемый. Кажется, что на нём можно переписать тот же TensorFlow и он станет быстрее. И не заморачиваться со Swift.

N>учитывая, что в этой области сейчас как-то тухло, для для CUDA конкурентов нет, но она только на Nvidia, то что-то должно выстрелить в конце концов. Кто-нибудь смотрел, пробовал, запускал что-нибудь на этом Taichi?

Первый раз слышу обо всём перечисленном.
Но последнее — Taichi — не звучное. Не взлетит точно
Маньяк Робокряк колесит по городу
Re: Taichi programming language
От: Ops Россия  
Дата: 08.01.20 17:59
Оценка: +6
Здравствуйте, Nuzhny, Вы писали:

N>Вот он здесь или на гитхабе.


Ну вот почему, почему нельзя, представляя новый язык, делать это кодом, в виде небольшой понятной программы (но не примитива хелловорлд)? Почему надо какие-то видео снимать да всякий маркетинговый булшит писать?
Совсем деградировали.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: Taichi programming language
От: Muxa  
Дата: 08.01.20 18:23
Оценка:
N>>Вот он здесь или на гитхабе.
Ops>Ну вот почему, почему нельзя, представляя новый язык, делать это кодом, в виде небольшой понятной программы (но не примитива хелловорлд)? Почему надо какие-то видео снимать да всякий маркетинговый булшит писать?

github/examples? нет?

Ops>Совсем деградировали.

?
Re[3]: Taichi programming language
От: Ops Россия  
Дата: 08.01.20 18:38
Оценка:
Здравствуйте, Muxa, Вы писали:

M>github/examples? нет?


Там же питон?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[4]: Taichi programming language
От: Muxa  
Дата: 08.01.20 18:54
Оценка:
M>>github/examples? нет?
Ops>Там же питон?

Taichi is an open-source computer graphics library that aims to provide easy-to-use infrastructures for computer graphics R&D. It's written in C++14 and wrapped friendly with Python.

Re[5]: Taichi programming language
От: Ops Россия  
Дата: 08.01.20 18:59
Оценка:
Здравствуйте, Muxa, Вы писали:

M>>>github/examples? нет?

Ops>>Там же питон?
M>

Taichi is an open-source computer graphics library that aims to provide easy-to-use infrastructures for computer graphics R&D. It's written in C++14 and wrapped friendly with Python.


А схренали пишут, что язык?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[6]: Taichi programming language
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 08.01.20 21:06
Оценка: -1
Здравствуйте, Ops, Вы писали:

Ops>А схренали пишут, что язык?


А CUDA — это язык или библиотека? Правильный ответ — это расширение языка + фреймворк или платформа. Расширение, потому что вводит в язык новые сущности.
Taichi создан на аналогичных правах: он расширяет язык, позволяя писать высокоэффективный код.
Ну и так же как и с CUDA вполне допустимо называть его языком, говорить "это написано на CUDA/Taichi". Вся прелесть задумки в том, что его можно прямо таки брать и использовать у себя в существующей программе уже сейчас.
Re[7]: Taichi programming language
От: Muxa  
Дата: 09.01.20 03:35
Оценка:
N>Taichi создан на аналогичных правах: он расширяет язык
Какими конструкциями или элементами?
Re[8]: Taichi programming language
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 09.01.20 05:21
Оценка:
Здравствуйте, Muxa, Вы писали:

N>>Taichi создан на аналогичных правах: он расширяет язык

M>Какими конструкциями или элементами?

@ti.func и @ti.kernel. А дальше кастомный компилятор. Разве это не новые сущности языка? Такое есть в Питоне?
Re: Taichi programming language
От: xma  
Дата: 09.01.20 05:32
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Пилится с бешеной скоростью одним чуваком из MIT


крутые чуваки в MIT, что тут скажешь ..

N>Кто-нибудь смотрел, пробовал, запускал что-нибудь на этом Taichi?


а подробнее можно — где он быстрее и за счёт чего ?

неужели быстрее чем NVidia'иавский код ?

вот у него в видосе,
  Скрытый текст
Отредактировано 09.01.2020 5:32 xma . Предыдущая версия . Еще …
Отредактировано 09.01.2020 5:32 xma . Предыдущая версия .
Re[2]: Taichi programming language
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 09.01.20 06:57
Оценка:
Здравствуйте, xma, Вы писали:

xma>а подробнее можно — где он быстрее и за счёт чего ?

xma>неужели быстрее чем NVidia'иавский код ?

Ну, ручками наверняка можно написать быстрее. Но ту же прямо из Питона, не выходя из кассы. Плюс он может быть быстрее за счёт высокоуровневых оптимизаций, которые он описывает у себя. Плюс автоматическое дифференцирование, которого в принципе нет в CUDA, а для нейросетевых и физических задач оно надо.
Re[9]: Taichi programming language
От: Chorkov Россия  
Дата: 09.01.20 15:16
Оценка: 6 (1)
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, Muxa, Вы писали:


N>>>Taichi создан на аналогичных правах: он расширяет язык

M>>Какими конструкциями или элементами?

N>@ti.func и @ti.kernel. А дальше кастомный компилятор. Разве это не новые сущности языка? Такое есть в Питоне?


Оператор @ — это обычные питоновские обертки вокруг функций и классов (декораторы).

т.е.
@ti.func
def fn(n):
    return n+1

эквивалентно:
def _fn_(n):
    return n+1
fn=ti.func(_fn_)


Т.е. ti.func и ti.kernel — обычные функции в пространстве имен ti.
Иное дело, что они занимаются разбором байт-кода питона и генерацией, на его основе, кода CUDA. Т.е. как-бы новый back-end для питона.
Нечто подобное делает, например, numpy (numpy.vectorize).

Позволю себе усомниться в продуктивности такого подхода. Т.е. полученный код конечно будет эфективнее чем оригинальный питон-код (за счет массивного распараллеливания), но врядли обгонит аналогичный нативный код (CUDA). Дело в том, что на промежуточном этапе (байт-код) часть информации — теряется. Зная характрные входлные значения, вероятности переходов, для разных ветвей алгоритма, можно оптимизировать лучьше. Еще лучьше, иметь результаты профелирования характерных задач.

Так что переписывать TensorFlow на Taichi — безперспективно. Основное назначение — сделать видеокарту более доступной "обычным" пользователям питона, например, физикам.
Re[10]: Taichi programming language
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 09.01.20 17:54
Оценка: +1
Здравствуйте, Chorkov, Вы писали

C>Оператор @ — это обычные питоновские обертки вокруг функций и классов (декораторы).


Спасибо за разъяснение.

C>Так что переписывать TensorFlow на Taichi — безперспективно. Основное назначение — сделать видеокарту более доступной "обычным" пользователям питона, например, физикам.


Перспективы могут быть. Сейчас отличие PyTorch от Tensorflow как раз в том, что код для PyTorch пишется на Питоне, как на основном языке. Ну и за счёт использования всяких numpy и других библиотек, код работает быстрее. Поэтому PyTorch вырвался вперёд по популярности среди исследователей: все новые сущности пишутся на языке, на котором написан сам фреймворк, его легко и просто расширять.
TensorFlow наоборот, написан на плюсах, а для Питона сделаны биндинги. Поэтому код на TensorFlow легко пускать в продакшен на все платформы, где есть фреймворк, работает быстро. Но делать что-то новое на нем становится труднее, кода получается много и он громоздкий.
PyTorch для решения своей проблемы сделал возможность заворачивать питоновский код в бинарник, но это костыль. Tensorflow сделал свой костыль — интегрировал в себя питоновский Keras.
Далее TensorFlow начал новый экспериментальный проект Swift for TensorFlow, где код будет писаться на статически типизированном, компилируемом языке с автоматическим дифференциррванием, который будет основным языком фреймворка. Это отличный подход с одним минусом — комьюнити уже подсело на Питон. Вспомним Caffe, который быстрый, на плюсах и умер. Вспомним, что Torch на lua тоже умер. Theano умер. MxNet непонятно живой или нет.
Это я так плавно подвёл к тому, что Taichi может стать очередным костылем, причём успешным в этой эволюции. Он сочетает в себе и скорость, и дифференцируемость, и не самый удачный, но всеми любимый Питон.
Отредактировано 09.01.2020 17:59 Nuzhny . Предыдущая версия .
Re[11]: Taichi programming language
От: XOOIOOX  
Дата: 10.01.20 08:56
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>TensorFlow наоборот, написан на плюсах, а для Питона сделаны биндинги.


PyTorch тоже написан на плюсах и тоже для Питона биндинги.
Для продакшена есть LibTorch, API которого сугубо на плюсах.
Re[12]: Taichi programming language
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 10.01.20 10:14
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>PyTorch тоже написан на плюсах и тоже для Питона биндинги.

XOO>Для продакшена есть LibTorch, API которого сугубо на плюсах.

Ну, я на PyTorch не работаю, но разве там всё не через TorchScript делается? Мне показалось, что там без Питона никуда. Там даже граф создаётся динамически в рантайме.
TensorFlow же из C++ вызывается нативно, но очень многословно. Даже так: из С++ возможностей больше, чем из Питона. Собственно весь инференс у меня плюсовый на нём.
Re[13]: Taichi programming language
От: XOOIOOX  
Дата: 10.01.20 11:10
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Ну, я на PyTorch не работаю, но разве там всё не через TorchScript делается?


Там как-то это через одно место сделано. Из плюсового ядра вызывается скрипт, который строит граф, потом обратно засовывает. Детально не разбирался, но в обзоре Питорча слышал, что примерно так.
Re: Taichi programming language
От: FDSC Россия consp11.github.io блог
Дата: 11.01.20 00:14
Оценка:
Фантазии у людей нет. Боевое искусство и систему гимнастики теперь в код переделывают
Re: Taichi programming language
От: BrainSlug Израиль  
Дата: 11.01.20 01:52
Оценка:
N>=Кто-нибудь смотрел, пробовал, запускал что-нибудь на этом Taichi?
несколько дней назад баловался, с хелловорладми на джупитере. все работает. но кернел быстро умирает. и после этого бросил.
собственно от него же https://github.com/yuanming-hu/difftaichi
.
Отредактировано 11.01.2020 1:53 BrainSlug . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.