Alexander
22.09.2017
09:12:56
если регистрация открыта конечно
Dmitry
22.09.2017
09:16:49
конечно
и наоборот тоже работает
мы как раз ездили в испанию с испанской визой, но через германию
Google
Alexander
22.09.2017
09:18:00
вот я так хочу, наверное
блин было бы оно на 2 дня раньше вообще бы идеально было
в общем надо думать хочу ли я на это кусок отпуска тратить, с другой стороны это наверное сводится к тому, найдет ли моя семья чем заняться пока в мюнхене
Ilya
22.09.2017
10:06:59
а всё-таки хаскель даёт бесценный опыт, даже для других языков...
сейчас сижу и пишу шаблонный фолд для дерева геометрических фигур, это на nvcc++ ?
Alexander
22.09.2017
10:11:31
хотя бы этим и ценен : ]
если не можешь писать на нём по любым причинам, то хотя бы на других языках можно страдать в хорошем направлении
Dmitry
22.09.2017
10:12:59
страдать это да
особенно хорошо потом страдается в си
в попытках эмулировать hof
кортежи
и что-то типизировать путем обертывания в структуры
Ilya
22.09.2017
10:14:47
я страдаю от отсутствия паттерн-матчинга
сейчас фигуры у меня помечены enum class, но это убого
Google
Дмитрий
22.09.2017
10:15:34
Ilya
22.09.2017
10:16:48
хотя уже несколько раз натыкался на Mach7, но как-то не хочется его тыкать
kana
22.09.2017
10:33:06
Хм, если представить сумму типов как множество пар, где первый элемент - метка, а второй - значение (типа (Left, 10), (Right, "hello")), то это вполне себе зависимый тип, где тип второго элемента пары зависит от значения первого, он же сигма. А такое представление я взял не из головы, как минимум так выглядит размеченая сумма на вики
Index
22.09.2017
10:33:50
Или это логическая импликация
В обоих случаях каррирование смысл имеет
Anton
22.09.2017
10:35:59
Евгений
22.09.2017
10:36:06
Контекст логического выражения это, конечно, в определённом смысле имписитная логическая импликация, но каррировать тем менее выводимость нельзя :)
Alexander
22.09.2017
10:36:39
@antontrunov я на острова испанские, так что на континентальной части не буду : /
как нить в другой раз = )
Anton
22.09.2017
10:36:54
ок =)
Index
22.09.2017
10:37:39
я вообще ничего не могу сказать про |-, а про => вот вполне
1 способ смотреть на => в том, что он как ->, только аргумент неявный
2 способ в том, что это логическая импликация
в обоих случаях каррирование имеет место
Евгений
22.09.2017
10:38:48
Что такое "неявный аргумент"? Это какое-то неформальное понятие
Index
22.09.2017
10:39:35
Это значит, что аргумент будет при вызове функции составлен механизмом instance search
Евгений
22.09.2017
10:39:38
Второе неверно, потому что -> это логическая импликация, а => соединяет разнородные сущности
Index
22.09.2017
10:39:40
то есть будет поиск словаря
Google
Index
22.09.2017
10:39:59
illiatshurotshka❄️
22.09.2017
10:40:05
Ilya
22.09.2017
10:40:48
нельзя просто взять и перейти на раст:)
Евгений
22.09.2017
10:40:49
Ilya
22.09.2017
10:40:59
если мы не про домашние проекты говорим
Index
22.09.2017
10:41:00
Евгений
22.09.2017
10:41:18
Ну типа констрейнт имеет одни свойства, тип — другие
Index
22.09.2017
10:41:34
Constraint и Type эквивалентны, у меня есть инъекции в обе стороны
Был даже пропозал сделать Constraint ~ Type, потому что в GHC Core это так
Разных свойств там только в том, кто может слева от => оказаться
illiatshurotshka❄️
22.09.2017
10:42:29
Index
22.09.2017
10:42:32
Фантомное различие
Ilya
22.09.2017
10:42:49
illiatshurotshka❄️
22.09.2017
10:43:05
нет проектов на си
Евгений
22.09.2017
10:43:06
illiatshurotshka❄️
22.09.2017
10:43:17
но в расте есть встроенные ленивые структуры
Ilya
22.09.2017
10:44:11
раст слишком молод
его нет под нестандартные платформы, например
illiatshurotshka❄️
22.09.2017
10:44:34
какая тебе нужна?
Google
Ilya
22.09.2017
10:44:49
кластеры, gpu
Denis
22.09.2017
10:44:50
Раст > си
illiatshurotshka❄️
22.09.2017
10:45:03
Ilya
22.09.2017
10:45:16
давай для начала cuda
это конкретно?
Евгений
22.09.2017
10:45:37
illiatshurotshka❄️
22.09.2017
10:45:55
Евгений
22.09.2017
10:45:58
Index
22.09.2017
10:46:01
Эм-м-м, Refl
Denis
22.09.2017
10:46:12
это конкретно?
Ты не куде много чего делаешь?) Или ты каждый день бек рей трейсинг в риал тайм генеришь?)
Index
22.09.2017
10:46:44
Ilya
22.09.2017
10:46:50
плюсы есть под каждую табуретку вот
illiatshurotshka❄️
22.09.2017
10:47:04
rustc может в PTX компилировать
Ilya
22.09.2017
10:47:17
особенно если не тащить stl или че там выкидывают
Index
22.09.2017
10:47:27
А в целом любой констрейнт можно в Type перенести, есть Dict :: Constraint -> Type
https://hackage.haskell.org/package/constraints-0.9.1/docs/Data-Constraint.html#t:Dict
illiatshurotshka❄️
22.09.2017
10:47:31
Denis
22.09.2017
10:47:33
Раз все компилится в жс, го все на жс)))
illiatshurotshka❄️
22.09.2017
10:47:40
которая тебе нужна
Ilya
22.09.2017
10:48:09
Google
illiatshurotshka❄️
22.09.2017
10:49:28
nvptx64-nvidia-cuda
Ilya
22.09.2017
10:51:26
я правильно понял, что это либа НАД кудой? с биндингами в любой удобный язык
короче батарейки для раста/etc на куде
как NumPy или SciPy для питона
очень похоже на то
в таком случае, мне нужно, разумеется, не это
illiatshurotshka❄️
22.09.2017
10:53:34
Ilya
22.09.2017
11:09:42
nvptx64-nvidia-cuda
почитал. ну начинания хорошие, но пока это выглядит несерьезно.
собственно разбирал вот этот пример https://github.com/japaric/nvptx/blob/master/examples/add.rs
заявлено, что это сложение двух векторов на GPU
претензий собственно две, но обе принципиальные
1. как я вижу, все операции, связанные с GPU, находятся в блоке unsafe. Но зачем тогда раст?
2. так и не понял, где они определяют сам kernel add. По всей видимости, берут из кишок библиотеки, причём загружают функцию по её имени через строку (лол)? в таком случае этот пример ничего не демонстрирует, т.к. мне интересно написание кода kernel-функций и device-функций на раст, а не эти игрульки.
если я чего-т не понял, то пожалуйста
illiatshurotshka❄️
22.09.2017
11:52:05
почитал. ну начинания хорошие, но пока это выглядит несерьезно.
собственно разбирал вот этот пример https://github.com/japaric/nvptx/blob/master/examples/add.rs
заявлено, что это сложение двух векторов на GPU
претензий собственно две, но обе принципиальные
1. как я вижу, все операции, связанные с GPU, находятся в блоке unsafe. Но зачем тогда раст?
2. так и не понял, где они определяют сам kernel add. По всей видимости, берут из кишок библиотеки, причём загружают функцию по её имени через строку (лол)? в таком случае этот пример ничего не демонстрирует, т.к. мне интересно написание кода kernel-функций и device-функций на раст, а не эти игрульки.
ансейф код абстрагируется, и ты можешь безопасно пользоваться абстракциями
насчет второго не шарю
Ilya
22.09.2017
12:08:07
насчет второго не шарю
ну как я изначально и предположил, они просто наклепали кучу полезных для линейки/диплёрнинга/обработки сигналов/etc функций и дали к ним доступ из раста (с хоста). Это называется библиотека. Такие есть под любой язык, вот прям совсем под любой, и даже под сами плюсы. Хотя фича компиляции в ptx прикольная, не спорю. Но поддержкой куды растом это назвать сложно. В таком смысле и питон поддерживает куду...
Моя же работа заключается в написании таких библиотек. Так что, увы, только б-гмерзкие плюсы. Но за ссылочку спасибо.
*всё, прекращаю офтоп
Hot
22.09.2017
12:09:37
Да нет
illiatshurotshka❄️
22.09.2017
12:09:37
ты смешал первую и вторую либу что ли
Hot
22.09.2017
12:09:38
Продолжай
Ilya
22.09.2017
12:11:46
ты смешал первую и вторую либу что ли
я не очень понял вопрос... Но в их репе я не нашёл, как писать кернелы и девайсы на расте, везде только рулёж уже написанными (кем и на чём?) кернелами с хоста
illiatshurotshka❄️
22.09.2017
12:12:47
ну твое первое сообщение про arrayfire а ответ про nvptx