The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Проект Bend развивает высокоуровневый язык для параллельных вычислений на GPU

21.05.2024 13:18

Опубликованы первые выпуски проекта Bend, развивающего высокоуровневый язык программирования для параллельных вычислений, который позиционируется как альтернатива низкоуровневыми языкам, таким как CUDA и Metal, обладающая выразительным синтаксисом и возможностями для повышения удобства разработки, свойственными таким языкам, как Python и Haskell. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Из возможностей языка Bend отмечается быстрое распределение объектов, возможность использования функций высшего порядка, замыканий, продолжений, неограниченной рекурсии, сопоставления с образцом, рекурсивных сопоставлений (fold) и циклов (bend), целочисленных, строковых и списочных типов. Поддерживается два варианта синтаксиса - в стиле Python и в стиле Haskell. В программах не требуется указание управляющих распаралелливанием аннотаций, явного создания потоков и выставления блокировок. Распараллеливание производится автоматически, например, при вычислении выражения "((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.

Программы на языке Bend могут выполняться на оборудовании, обеспечивающем массовый пареллелизм, например, на GPU, демонстрируя практически линейный рост производительности в зависимости от числа вычислительных ядер. Код на языке Bend компилируется в низкоуровневое промежуточное представление HVM2 (Higher-order Virtual Machine 2), которое затем компилируется в представление на C и CUDA. В настоящее время проектом поддерживается только выполнение на GPU NVIDIA.

Что касается производительности, то тестовое приложение с реализацией битонной сортировки, при выполнении в одном потоке CPU Apple M3 Max было выполнено за 12.15 сек., при задействовании 16 потоков - за 0.96 сек., а при привлечении GPU NVIDIA RTX 4090 с 16k потоками - за 0.21 сек.


   def sort(d, s, tree):
     switch d:
       case 0:
         return tree
       case _:
         (x,y) = tree
         lft   = sort(d-1, 0, x)
         rgt   = sort(d-1, 1, y)
         return rots(d, s, lft, rgt)

   def rots(d, s, tree):
     switch d:
       case 0:
         return tree
       case _:
         (x,y) = tree
         return down(d, s, warp(d-1, s, x, y))
   ...


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Представлен Rust GPU, инструментарий для разработки шейдеров на языке Rust
  3. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
  4. OpenNews: Apple опубликовал Pkl, язык программирования для определения конфигурации
  5. OpenNews: Первый тестовый выпуск языка программирования Hare
  6. OpenNews: Выпуск языка программирования Mojo 24.3
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61224-bend
Ключевые слова: bend, gpu
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (131) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 14:08, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А говорили что на Расте только переписывают и не создают ничего нового, - получите и распишитесь!
     
     
  • 2.10, Аноним (10), 14:27, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    https://github.com/HigherOrderCO/hvm бгг, зайди в репу и посмотри, какой там процент на расте на самом деле
     
     
  • 3.20, Аноним (1), 14:44, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    и? сам Bend на 100% Расте: https://github.com/HigherOrderCO/Bend/

    или вам этого недостаточно?:)

     
     
  • 4.70, srivau_porkovi (?), 17:54, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что такое Bend? В том репозитории о котором ты пишешь 8к строк кода. Это 0.001% от сишки в зависимостях. И это по самой выгодной для раста оценке.

    К тому же ненужно забывать, что код на расте на 80% состоит из бойлерплейта и раст-специфичных костылей. Поэтому чтобы получить хотя бы сишные строки это всё нужн оразделить на 4 в результате получаем хеловорлд на пару тысяч строк кода.

    В любых биндингах к сишке кода больше. С таким же успехом можно взять какой-нибудь llvm-rs и рассказывать что "он написан на расте". К чему это всё? Что ты этим хотел сказать?

     
     
  • 5.78, Аноним (78), 18:58, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Щас бы полезность ЯП оценивать в строках... Боюсь тогда сишка всрет фортрану какому-нибудь.
     
     
  • 6.162, Аноним (-), 11:47, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Щас бы полезность ЯП оценивать в строках... Боюсь тогда сишка всрет фортрану какому-нибудь.

    Число строк в сишке очень зависит от подключеных библиотек.

    Скажем, на сишке можно распределенный p2p бот для чата протокола Tox уместить в менее чем страничку текста на все. Потому что де факто месенжер - в либе! А эта страничка текста так, обвес с логикой. Экономить особо негде, даже если питон какой взять.

    Или вон там на сишке есть lwan. С ним можно микросервисы делать - не хуже чем адепт го. И тоже в полстранички текста - влезет. Заодно потом можно погарцевать в верхушке какого-нибудь топичного бенчмарка, в целях пиара, конечно.

    А на фортране так - без сишных либ - смогете? Не, использовать сишные либы - читерство! :)

     
  • 5.80, Аноним (1), 19:04, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> код на расте на 80% состоит из бойлерплейта и раст-специфичных костылей <<<

    Возможно если вы пишете целиком и полностью в императивном стиле то возможно, у вас так и получается! ну а если же писать в функциональном стиле, то там код будет однострочником не хуже чем в том же Хаскеле или Скале!!!

     
     
  • 6.90, srivau_porkovi (?), 20:04, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Эти фантазёры. Как раз таки императивно там получается меньше всего проблем потому как рескин сишки. А как только дело доходит до абстракций, то получаются тормоза и бойлерплейт. Почему каждый почитатель тут не то что к программированию отношения не имеет, но и расте ничего не знает и в глаза не видел. Открой код и посмотри, начиная с такого 'hvm::Numb::new_i24(s as i32 * num as i32)' где каждая строчка это мусор, заканчивая фантазиями о каком-то функциональном стиле(которого не существует в природе). Но ты можешь их найти. В vm такого кода нет, но то и понятно это просто копипаста с сишной реализации.

    В обвязке убогой наличие всех этих приседаний с итераторами следствие немощи языка. Как пример:

    '''
            .iter()
            .filter(|nam| !nam.contains("__C"))
            .chain(cycle.first())
            .cloned()
            .collect::<Vec<_>>()
            .join(" -> ");
    '''

    Даже уходя от нелепости подобного кода и тормознутость - здесь каждая вторая строчка мусор. .iter - следствие немощной системы типов, а вернее её полном отсутствии. .cloned туда же. collect опять же следствие всего указанного выше, как и убогости самих итераторов. Когда тебе нужно постоянно перегонять всё в вектор. Даже в js всё это не так позорно, но там постоянная перегонка хоть причину имеет. map/filter/прочее реализовано только для массива.


     
     
  • 7.161, Аноним (-), 11:33, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Даже уходя от нелепости подобного кода и тормознутость - здесь каждая вторая
    > строчка мусор. .iter - следствие немощной системы типов, а вернее её полном
    > отсутствии. .cloned туда же. collect опять же следствие всего указанного выше,
    > как и убогости самих итераторов.

    Зато в сабже как круто. Никаких типов, никаких проблем с ними. Правда, я не понимаю как вы это в случае чего дебажить потом будете - ведь аннотации намерений кодера в том синтаксисе нет. Так что если вместо дерева с бананами вышло дерево с ботинками - кто бы его знает как и почему?

     
  • 5.81, Аноним (-), 19:05, 21/05/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.92, srivau_porkovi (?), 20:18, 21/05/2024 Скрыто ботом-модератором     [к модератору]
  • +3 +/
     
     
  • 7.105, Аноним (105), 00:09, 22/05/2024 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 8.155, srivau_porkovi (?), 19:20, 22/05/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.127, Аноним (127), 09:33, 22/05/2024 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.137, Аноним (-), 10:46, 22/05/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 2.11, Аноним (11), 14:29, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Переписали cuda на непонятно что? Вот это прорыв. Ещё один хеллоуворлд, который никому не нужен.
     
  • 2.12, Аноним (12), 14:29, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>Код на языке Bend компилируется в низкоуровневое промежуточное представление HVM2 (Higher-order >>Virtual Machine 2), которое затем компилируется в представление на C и CUDA
     

     ....большая нить свёрнута, показать (16)

  • 1.2, Аноним (-), 14:09, 21/05/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +7 +/
     
  • 1.3, Аноним (3), 14:10, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Раскидывать"1 + 2" и "3 + 4" на разные ядра? Неужели GPU может сделать только одно сложение за такт?
     
     
  • 2.37, n00by (ok), 15:34, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Скорее всего, простейший пример выбрали для наглядности. Операции "1 + 2" и "3 + 4" обычный процессор в одном потоке выполнит параллельно.
     
     
  • 3.167, Аноним (-), 19:12, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Скорее всего, простейший пример выбрали для наглядности. Операции "1 + 2" и
    > "3 + 4" обычный процессор в одном потоке выполнит параллельно.

    GPU можно представить как кучу относительно простых ALU, на манер SIMD/MIMD, с той разницей что число lanes по сравнению с обычным процом - немеряное! Так что число инструкций за такт которое оно сжевывает - зубодробильное. Если, конечно, алгоритм параллелился и было чем lanes занять и не упиралось в взаимозависимости результата.

    На самом деле чуть продвинутее. А в минус - слабый exec flow control, такая штука в отличие от проца общего назначения не особо быстро разворачивается в другую сторону. Изначально же делано чтобы паровым катком по всей площади картинки прокатиться. А оказалось что это и еще много где неплохо работает.

     

  • 1.4, Шарп (ok), 14:15, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    >при задействовании 16 потоков - за 0.96 сек., а при привлечении GPU NVIDIA RTX 4090 с 16k потоками - за 0.21 сек.

    Топить печь ассигнациями. Количество потоков увеличилось с 16 до 16000, скорость только 4,5 раза.

     
     
  • 2.5, Витюшка (?), 14:17, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это разные "потоки". Это потоки CPU, притом M3 процессора.

    И потоки GPU.

     
     
  • 3.7, Аноним (7), 14:19, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    и пропускная способность с кэшами и задержками.
     
  • 3.9, Banned (?), 14:27, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Так проц мощнее видяхи вон насколько. Только на коредуба надо проц разгружать и передать видяхе для заметной выгоды.
     
     
  • 4.13, Аноним (11), 14:30, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Опять выпил? Какой видяхи на маке нет нвидии и никогда не будет.
     
     
  • 5.18, Banned (?), 14:36, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В статье что написано? Чел выше даже акцетировал,но тебе все равно про свое наболевшее.
     
  • 3.34, Аноним (34), 15:28, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Это разные "потоки". Это потоки CPU, притом M3 процессора.

    Сам придумал?

     
  • 3.65, кент кента (?), 17:14, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Это разные "потоки".

    чел всё правильно пишет, если GPU не быстрее CPU хотя бы в 100500 раз, то это провал.
    посмотри разницу на майнинге шоле или hashcat-инге

     
     
  • 4.67, Banned (?), 17:33, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Уху, 1+1 100500 раз и ничего нового,а 1+2 уже не осилил. Может проще подсмотреть в конце учебника ответ? Норм расчеты ИИ. Точно умнее тебя.
     
  • 2.6, Аноним (1), 14:19, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    [cарказм]полагаю вы из тех у кого стакан всегда наполовину пуст![/сарказм]
     
  • 2.25, мяя (?), 14:54, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да было бы интересно узнать производительность на ватт.
     
  • 2.56, Аноним (56), 16:23, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > 4,5 раза

    Это довольно много, если речь о вычислениях, которые занимают часы, а то и дни.

     

  • 1.14, Аноним (12), 14:30, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    похоже на очередную обёртку
     
     
  • 2.16, Аноним (11), 14:32, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже на эксперимент чтобы менеджеры могли отчитаться за работу. Собственно руст это один из таких же экспериментов.
     
     
  • 3.19, Аноним (19), 14:44, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну так работа кипит, значит и годовые бонусы растут. А нужно или нет пусть думает тот кто за это платит. Если хочет свой блэкджек, значит сделаем ему блэкджек.
     
  • 2.22, Аноним (34), 14:49, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > похоже на очередную обёртку

    В этом вся суть современной айтишечки. Всё уже написано и переписано по 100500 раз, а деньги зарабатывать среднестатистическому айтишнику как-то надо. Не все же программисты настолько одарённые, чтобы работать с ИИ на низком уровне, а не поверх готовых библиотек.

     
     
  • 3.43, Аноним (43), 15:46, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Всё уже написано и переписано по 100500 раз,

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

    > а деньги зарабатывать среднестатистическому айтишнику как-то надо.

    МОжно танцевать в костюме антилопы и просить донаты!

    > Не все же программисты настолько одарённые, чтобы работать с ИИ на низком уровне, а не поверх готовых библиотек.

    Если бы твоя идея была жизнеспособной, то все бы писали только на ассемблере.
    Но приложение, которое будут пилить на АСМе 10 лет нужно мало кому.

     
     
  • 4.51, Аноним (56), 16:10, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты совсем не понял то, что тебе попытались донести. Впрочем, ожидаемо.
     
  • 4.57, Ухилянт (?), 16:26, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Да еще и плохие баги типа рут узвимостей находят почти каждую неделю

    Высосанные из пальца, которые то и "багами" являются только в искусственно созданных "тепличных" условиях. Напомни ка, много ли взломов осуществляется путём сурового хакинга, а не социальной инженерии или откровенной диверсии с подкупом сотрудников за $$$?

     
     
  • 5.61, Аноним (-), 16:38, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Хахаха, а сколько там лет kernel org был проходнеым двором?
    А для повышения привилегий использовалась Грязная Корова.
    opennet.ru/opennews/art.shtml?num=45354

    А вот новости про повышение привилегий или исполнение кода на этом сайте выходят... постоянно)

    Так что дааа, 'являются только в искусственно созданных "тепличных" условиях'

     
     
  • 6.62, Ухилянт (?), 16:41, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И как на практике оно? Много хакиров захакали kernel.org?
     

  • 1.23, мяя (?), 14:53, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

    https://github.com/HigherOrderCO/hvm
    А вот сердце:
    > Cuda 42.2%
    > C 40.7%
    > Rust 17.1%

     
     
  • 2.24, мяя (?), 14:53, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Почему-то у меня не обновились комментарии...
     
  • 2.28, Аноним (28), 15:13, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Старый hvm1 был на си, а hvm2 на rust. GitHub показывает общую статистику по всей истории, а не раскладку по текущему коду.
     
     
  • 3.30, Аноним (11), 15:16, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И что даёт руст? Во время конь пиляции так много людей выходит за границы что надо тратить время на новую версию и все равно можно выйти за границы
     
  • 3.35, мяя (?), 15:29, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему ты врёшь?
    https://github.com/HigherOrderCO/HVM/tree/main/src
     
     
  • 4.42, Аноним (28), 15:45, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Гляньте сами внимательно, там код на rust, а на си и cuda результат автоматической генерации. Даже в новости написано, что компилятор на выходе выдает код на c+cuda.
     
     
  • 5.44, мяя (?), 15:58, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это обвязка-болванки на си и cuda без которых код на расте не работает. Код на расте не полноценный и просто транслирует тексты из одного представления в другое (сишное/кудовское) которое подсовывает в эти обвязки.
    https://github.com/HigherOrderCO/HVM/blob/860916b907bb4a4d3549e204c74ab52b012e
    С таким успехом можно было на JS написать генератор, не изменилось бы ровным счётом ничего.
     
     
  • 6.47, мяя (?), 16:00, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    И кстати код на расте тупо долбит файл с обвязками из раза в раз по новой через replace, которая каждый раз происходится по файлу заново. Парсер не завезли.
     
     
  • 7.48, мяя (?), 16:02, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя там и парсер не нужно, достаточно просто планировать замену последовательно не проходя каждый раз файл с нуля.
     
  • 6.49, Аноним (-), 16:03, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я в жаваскриптах не рабираюсь и не уверен позволяет ли он
    "использования функций высшего порядка, замыканий, продолжений, неограниченной рекурсии, сопоставления с образцом, рекурсивных сопоставлений (fold) и циклов (bend), целочисленных, строковых и списочных типов"

    Но в сишке про такие новшества и дары цивилизации вообще не слышали, там перечисления (enum которые) до сих пор просто числа. Что приводит к веселыс сравнениям теплого с мягким.
    Так что код на расте не просто транслирует, а еще и добавляет удобства.

     
     
  • 7.53, Аноним (11), 16:17, 21/05/2024 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.45, Аноним (11), 15:59, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как ты не понимаешь фанатики искренне верят если си код создала программа на руст, то этот код автоматически безопасТный, чтобы это ни значило.
     
     
  • 6.50, Аноним (-), 16:06, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не правда, такое может рассказывать только человек, который даже растбук не читал.
    И обычно такие, внезапно, это войны-супротиив-раста.

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

     
     
  • 7.117, Аноним (11), 07:10, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Какой-то набор слов.  
     
  • 6.64, Аноним (64), 17:04, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Возьми, к примеру, спарк. Формально верифицированный код из ада транслируется в си. Раст никакого отношения к этому, конечно, не имеет, но схема вполне рабочая.
     
     
  • 7.68, Аноним (-), 17:51, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Формально верифицированный код из ада

    Если у тебя есть формально верифицированный код, то ты его можешь оттранслировать практически куда хочешь.
    Вот только получить такой код очень дорого. Поэтому ада и не взлетела, а ее место заняла быдлосишка(((
    Которую тоже можно верифицировать как напр. seL4. Но от сишки там будет одно название.

    Раст, кстати, тоже можно оттранслировать в си, просто это будет неэффективно.

     
     
  • 8.72, Аноним (64), 18:17, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Спарк самоверифицируемый субсет ада И вполне взлетела, вон даже во всех видеока... текст свёрнут, показать
     
  • 7.107, Аноним (105), 00:19, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Формально верифицированный код из ада

    Вот именно что из ада он транслируется. Пытался код один почитать, адок ещё тот..

     
  • 2.76, Аноним (76), 18:39, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вы, надеюсь, случайно, вводите всех в заблуждение, а не лжете внаглую:

    Вы взяли утверждение из новости про один проект, а ссылку дали на другой. Маладэць.

    Новость не про проект "параллельного рантайма" HVM2, а про проект "параллельного языка" Bend (язык и компилятор для него). А там на Bend и ссылка другая и другое "сердце":

    https://github.com/HigherOrderCO/Bend/

    Languages

    Rust 99.8%
    Just 0.2%

    Так что да,
    > Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

    это правда, потому что там про Bend, а не про HVM2.

    Вот така фигня, господин соврамши.

     
     
  • 3.82, Аноним (-), 19:10, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я на 99% уверен что человек ввел в заблуждения не намеренно.
    Просто когда в заголовке новости есть слово Раст, то это привлекает много странных личностей, многие из которых по интеллекту слегка умнее тумбочки.
    А еще старых сишников с закостенелыми мозгами.

    Так что, наверное, стоит относиться к ним с пониманием.

     
     
  • 4.86, Аноним (64), 19:28, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Только сабж не работает без стороннего рантайма, написанного с использованием си (в значительной мере), так что, технически, тот комментатор вполне прав (во всяком случае, в данной ситуации он значительно правее оппонентов). Но, я согласен, при многих отклонениях отказывает абстрактное мышление, и, если нельзя найти буквальное соответствие, начинают возникать сложности. Особенно много таких личностей по какой-то причине именно среди любителей раста, совпадение, наверное.
     
     
  • 5.88, Аноним (-), 19:41, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Бла-бла-бла А если коротко то ты натягиваешь сову на глобус Ядро линукса тож... большой текст свёрнут, показать
     
     
  • 6.89, Аноним (64), 19:51, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и говорю, получается, я прав был. Аналогии вообще за уши притянуты. Компилятор перевели на кресты не так давно (не обладаю сведениями относительно глубины внедрения, но деградация времени сборки имеет место быть) и ключевой компонент рантайма, это, очевидно, несколько иное (ядро компилируют любым совместимым компилятором, ЯП сборочного тулчейна не имеет никакого отношения к программам). По этой же причине расту не предъявляют за LLVM.
     
  • 3.93, srivau_porkovi (?), 20:25, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А куда потерялись зависимости? Ведь никакой Bend ничего не делает.

    >это правда, потому что там про Bend, а не про HVM2.

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

    Для тех кому интересно я писал выше. Этот Bend это 8к строк лапши, которые ничего не делают. Там есть парсер язык уровня тех, что пишут студенты на лабах. Ну и какая-то обвязка. Да и даже те нелепых 8к строк там это индусская лапша. Даже по меркам си с классами там лапша. Потому будь там это написано на них это было бы ~3к строк лапши как типичная лаба.

     
     
  • 4.108, Аноним (105), 00:29, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зато при падении головы на клавиатуру не за сегфолтится как гцц, который то и дело отдаёт права рута при компиляции. В бинарь дыру вполне впаять сможет кстати, от этого растафари ещё пока не уберёг
     
     
  • 5.118, Аноним (11), 07:12, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это твои личные фантазии, которые к реальности не имеют никакого отношения.
     
  • 5.154, srivau_porkovi (?), 19:16, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, кому интересно дам новую историю на тему как глушить этих раст-фанатиков. Дело в том, чтот язык настолько нелеп, что на нём реализовать ничего нельзя. Поэтому там существует то, что они называются процедурными макросами. Очевидно что ни к каким макросам это отношения не имеет.

    Работает это следующим образом. Когда вы компилируете код и где-то используется этот "макрос" это убожество выполняет исходный код без всякой изоляции. Таким образом сборка на этом "безопасном" языке не является безопасной. Я даже больше скажу, что когда вы открываете код в редакторе он запускает код без всякой изоляции.

    Таким образом если вы случайно в редакторе откроете код, либо попытаетесь его собрать - ваша система уже может быть заражена.

    Кому интересен механизм работы этого убожества более подробно, то он следующий. Тот лефтпад на который ссылается "макрос" собирается как бинарник и далее компилятор его запускает передавая туда строку и заменяя её результатом выполнения. Таким образом тут два вектора атаки. Первый этот сам бинарный блоб, который запускается без изоляции. Второе это та строка, что вставляется в код.

    После этого говорить о том, что гцц имеет какую-то дыру максимально нелепо. Весь код выполняемый в цпп во время компиляции полностью изолирован и не имеет доступа к чему-либо. Но т.к. эти немощи ничего из этого не осилили то вместо языков возможностей там просто бинарный блоб со строками. Что является самым позорным, что я когда-либо видел. И с этим убожеством эти фанатики бегают и рассказывают о том какое оно "мощное" и "инновационное".

     
     
  • 6.156, fyjy (-), 19:57, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хм, а с чего ты взял что твой пук кому-то интересен?
    То что ты просто недалекий неосилятор уже понятно, тк у гугла и амазона все получается, а у тебя "на нём реализовать ничего нельзя".
     

  • 1.54, YetAnotherOnanym (ok), 16:17, 21/05/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     

     ....ответы скрыты (9)

  • 1.60, Аноним (60), 16:38, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Синтаксис Nim
     
     
  • 2.74, Аноним (74), 18:37, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Чистый Питон по виду. Не знаю кто такой Nim (и не хочу знать).
     
     
  • 3.87, Аноним (87), 19:29, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    nim - Это обертка для си
     
  • 3.95, Аноним (95), 20:42, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Не знаю кто такой Nim (и не хочу знать).

    Хорошо, что публика, подобная тебе, проходит мимо языка, входящего в первую пятёрку ( github.com/attractivechaos/plb2 ) / десятку ( github.com/jinyus/related_post_gen ) языков, генерируюющих наиболее быстрые бинарники.

     
     
  • 4.99, Аноним (11), 20:48, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Nim это просто TypeScript для C++
     
     
  • 5.134, Аноним (60), 10:15, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ничего, что Nim компилируется в код C, C++, JavaScript, Objective-C?
     
     
  • 6.138, Аноним (11), 12:08, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну допустим не компилируется, а транслируется. А так да ничего страшного.
     
     
  • 7.142, Аноним (60), 12:18, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Допустим, ты неуч.
    ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F
    А так – ничего страшного
     
     
  • 8.145, n00by (ok), 12:39, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь открываем стандарт ISO IEC 9899 и читаем там определения 171 translat... текст свёрнут, показать
     
  • 8.153, Аноним (60), 17:08, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так ты ещё и шут, надеющийся, что публика не читает первоисточники Надеялся пор... текст свёрнут, показать
     
     
  • 9.158, n00by (ok), 09:44, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Публика как раз читает, в отличие от 171 эксперта 187 , резко спрятавшегося з... текст свёрнут, показать
     

  • 1.77, Аноним (74), 18:48, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    > Распараллеливание производится автоматически, например, при вычислении выражения "((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.

    Эээ, звучит как полная фигня, которая в 99% случаев будет генерировать отвратительный код (с точки зрения выполнения на GPU). Уже несколько десятилетий бьются с этими волшебными авто-параллелизующими языками, которые плохо работают и которые никто не хочет изучать. Ну будет ещё один 100500-й мёртворождённый язык.

    Современные "программисты"  вместо траты времени на изучения подобной маргинальщины будут писать запрос в ChatGPT "ну-ка сгенери-ка мне Radix-сортировку на CUDA".

     
     
  • 2.102, Аноним (56), 22:50, 21/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Программирование примерно таким и будет. И уже очень скоро. На входе план в виде таблиц, тасков и т.д., на выходе машинный код. А пока что ждём компилятор основанный на ИИ — это и положит начало конца ручного кодинга.
     
     
  • 3.125, Аноним (3), 09:26, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а зачем ждать, берись и делай
     
  • 3.126, n00by (ok), 09:33, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В октябре 1981 года Японское министерство международной торгов- ли и промышленно... большой текст свёрнут, показать
     
     
  • 4.140, Аноним (11), 12:12, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А потом оказалось что японский язык слишком сложный.
     
     
  • 5.143, n00by (ok), 12:33, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потом ЧатГПТ, работая удалённо, удалил ветку в удалённом репозитории.
     

  • 1.83, Аноним (83), 19:11, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сколько этих языков параллельного программирования уже?

    Лично мне вспомнился taichi:
    https://github.com/taichi-dev/taichi

    Чем они вообще различаются?

    Ах да, этот написан на Расте.

     
  • 1.85, Аноним (87), 19:26, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    у нас было n стандартов.jpg
     
  • 1.103, Аноним (103), 23:32, 21/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ещё бы ПК с материнской картой поддерживающей видеокарту вместо процессора, как бы кому-то смешно это не казалось. На cnews пишут что винда уходит на ARM, а я напомню что язык программирования Си был изначально близок к командам процессора х86. Множество лет разработки конечно ничем не заменить, тем не менее на сегодняшний день у С не самое большое сообщество. И замечу что даже OpenACC/OpenCL как-то это всё не спасает. A CUDA сильно замудреная.
     
     
  • 2.128, n00by (ok), 09:38, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > а я напомню что язык программирования Си был изначально
    > близок к командам процессора х86.

    Хватит распространять эту ересь. Если к чему Си и близок, так к PDP11. i8086 появился позже и там были команды enter/leave для работы со вложенными кадрами стека - это делалось для Pascal, но на практике мало использовалось.

     
     
  • 3.147, Аноним (147), 13:31, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну даже если так - Си в данном случае это не красит. Как ни крути, но насколько я помню различные источники (в том числе и свои) тесты показывают что это самый производительный язык для 8086.
     
     
  • 4.149, n00by (ok), 15:43, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А если не «помнить», а попробовать различные трансляторы Си, то окажется что код после современного GCC почему-то в разы обгоняет древний Borland. Может быть тогда появятся какие-то рациональные мысли, а не о покраске процессором языка программирования.
     
  • 3.152, Аноним (152), 16:33, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я вообще о том что такие языки программирования имеют право на существование и смысл.  А архитектура тут очень даже причём - есть железо, значит у него есть архитектура того как оно работает и набор команд. Если есть такой набор команд, значит и существование языка программирования оптимизированный под это железо вполне имеет смысл. Тем не менее некоторые языки программирования стандартизированы, что означает возможность иметь независимый компилятор.
     
     
  • 4.160, n00by (ok), 09:54, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Право это вопрос юриспруденции и выходит за рамки данного форума. Тем не менее, я уверен, что выносить суждения об архитектуре процессоров в праве тот, кто хоть немного с ней знаком. Остальные в праве задавать вопросы.
     

  • 1.114, нитгитлистер (?), 05:30, 22/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    чем спорить о потрохах может попробуете как оно работает? сравните производительность, удобство и прочие мелочи с cuda и потом уже выводы делайте. набрасывать на вентилятор легко и беззаботно - с душком развлечение.
     
     
  • 2.120, Аноним (11), 07:22, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А сам чего образование не позволяет? Или ты ждёшь когда единственно верный эксперт вынесет своё ценное мнение? Так это ещё хуже чем фанатеть от раста.
     
     
  • 3.136, нитгитлистер (?), 10:43, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > А сам чего образование не позволяет? Или ты ждёшь когда единственно верный
    > эксперт вынесет своё ценное мнение? Так это ещё хуже чем фанатеть
    > от раста.

    я вообще графический дизайнер и весьма далек от 3д и програмирования в принципе) не образовании дело а в сере работы)) люди оказывается не только кодами занимаются неожиданно да?))

     
     
  • 4.139, Аноним (11), 12:11, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ты врешь, я тебе не верю.
     
  • 2.122, YetAnotherOnanym (ok), 07:37, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не обязательно всё пробовать на вкус.
     

  • 1.123, name (??), 09:02, 22/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >"((1 + 2) + (3 + 4))", операции "1 + 2" и "3 + 4" будут выполнены параллельно.

    Мне одному кажется, что это только замедлит выполнение?

     
     
  • 2.130, n00by (ok), 09:41, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если исполнять именно это на разных ядрах ЦП - безусловно замедлит, в пределе на время длительности кванта планировщика. Если вычисления существенно сложнее, может быть и ускорятся.
     
     
  • 3.146, Аноним (147), 13:19, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Пожалуйста, ознакомьтесь с функциональщиной, а потом рассказывайте. Там свои особенности.
     
     
  • 4.148, n00by (ok), 15:34, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что бы говорить об особенностях исполнения кода процессором, необходимо почитать документацию по такому процессору. Например, Intel® 64 and IA-32 Architectures Optimization Reference Manual. Там можно произвести удивительное открытие: три сложения это три машинных команды, две их которых (в скобочках) исполнятся одновременно, даже если расположены в неудачном порядке. Ну либо хотя бы сгенерировать машинный код свой любимой «функциональщиной» и показать здесь - кто-то да объяснит.
     
     
  • 5.151, Аноним (152), 16:27, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот я и говорю что вы не в ту степь пошли. Впрочем уточню конкретно - с Haskell знакомы? Если нет, то ознакомьтесь пожалуйста.
     
     
  • 6.159, n00by (ok), 09:50, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А чё вдруг конкретно Haskell? OCaml, исполнитель для байткода которого лежит у меня на гитхапе, перестал быть «функциональщиной»? Понимаю, что про Рефал эксперты и не слышали. Так что пока я воспользуюсь ленивостью Haskell и не буду с ним «знакомиться». ;)
     
     
  • 7.163, Аноним (163), 11:48, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и какой в таком случае смысл выпендриваться? Может издержки на синхронизацию и передачу данных видеокарте в данном примере будут превышать время вычисления. Но более сложные чистые функции, да ещё с отложенными вычислениями более вероятно будут вычислены на видеокарте быстрее за счёт набора инструкций, отличного от процессора и за счёт реального параллельного вычисления с помощью множества потоков, как правило большего количества чем у процессора.
    Я не понимаю этого унижения какого-либо языка программирования просто потому что кто-то его не знает, потому что оно новое, вот и ненавидит. Такое впечатление что таким людям просто приплачивают за рекламу. Впрочем работу на нужных языках вполне можно считать оплатой рекламы. Чтоб вы разработки своей страны так отстаивали как западные.
     
     
  • 8.165, n00by (ok), 15:14, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно, что выпендрёж начался из-за неумения читать мой ответ 171 Если испо... текст свёрнут, показать
     
     
  • 9.170, Аноним (170), 11:20, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну я понял - просто травма детства, нужда показать себя, нужда в доказательстве ... текст свёрнут, показать
     
     
  • 10.175, n00by (ok), 12:43, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому и возникло непреодолимое желание упорно спорить с моим ответом Не понят... текст свёрнут, показать
     
  • 7.164, Аноним (163), 11:56, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да и что вам не понятно в концепциях языка в таком случае? По моему статья весьма доступно написана.
     
     
  • 8.166, n00by (ok), 15:16, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно, доступно https ru wikipedia org wiki Тест_Тьюринга ... текст свёрнут, показать
     
     
  • 9.171, Аноним (170), 11:24, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я очень скептически отношусь к тому что тут может быть как-то причастен тест Тью... текст свёрнут, показать
     
     
  • 10.173, Аноним (173), 11:52, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нуб пытается его пройти - но что-то не получается ... текст свёрнут, показать
     
     
  • 11.177, n00by (ok), 12:52, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Нуб написал в ответ на другую экспертизу эксперта 171 прекратите распространят... текст свёрнут, показать
     
  • 10.176, n00by (ok), 12:48, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А при чём тут все эти понты с итогом 171 вычислено на этапе компиляции 187 , ... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (15)

  • 1.124, Аноним (124), 09:15, 22/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как-то не похож синтаксис на современный язык. Избыточные двоеточия в конце строк. Многократные return. Небось, нормальный функциональный стиль использовать нельзя....

       def sort(d, s, tree):
         switch d:
           case 0:
             return tree
           case _:
             (x,y) = tree
             lft   = sort(d-1, 0, x)
             rgt   = sort(d-1, 1, y)
             return rots(d, s, lft, rgt)

     
     
  • 2.132, n00by (ok), 09:43, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Есть версия, что хотели упростить парсер.
     

  • 1.133, Аноним324 (ok), 09:53, 22/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Они разрабатывают фортран?
     
     
  • 2.141, Аноним (11), 12:14, 22/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Проприетарный компиль Фортрана распределяется по процессорам в кластере, а не ядрам видеокарты.
     

  • 1.157, Аноним (163), 22:03, 22/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Если кто не в курсе, для Debian доступен Nvidia 555. Парадоксальный факт - Wayland не глючит. Простите за оффтоп, но новости нет, а эта наиболее подходящая из последних.
     
     
  • 2.172, Аноним (173), 11:48, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Если кто не в курсе, для Debian доступен Nvidia 555. Парадоксальный факт
    > - Wayland не глючит. Простите за оффтоп, но новости нет, а
    > эта наиболее подходящая из последних.

    Анон, ты чего? Там вон сбоку есть ссыль - "добавить новость". Жми - и колоти туда! Это даже анонимус может. Зафиг это в коменты то спамить? Вон то - предложит новость автору сайта не через ж@пу, если нормально наколотишь - довольно быстро появится, возможно прямо в том виде.

     
  • 2.174, тыквенное латте (?), 12:14, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Парадоксальный факт - Wayland не глючит

    Ого. Теперь-то, наконец-то, вейланд готов.

    P.S. Но это не точно.

     

  • 1.168, Аноним (168), 23:50, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отличный проект, давно нужно было что-то более высокоуровневое.
    Тем кто говорит что это обертка, вы на CUDA писали? Там же жесткий C, передача указателей даже для простых вещей с распараллеливанием.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру