@ru_python

Страница 5976 из 9768
Nikolay
19.07.2018
14:36:28
и чем больше ты говна накидаешь, рассчитывая на то, что тебя за ручку компилятор проведет - тем больше неявной магии ты получишь

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

Геннадий
19.07.2018
14:36:38
Короче, бросайте вы эти умные словечки. Ассемблер и всё забыли!

Google
Nikolay
19.07.2018
14:36:51
а не компилятору

ну так не кидай говна
вот потому и на C

Алексей
19.07.2018
14:37:11
ни сишка, ни кресты - это не те языки, на которых можно безболезненно накидывать говно

вот потому и на C
нет, надо на крестах

Nikolay
19.07.2018
14:37:26
там нет соблазна польститься на какую-то магию и подтирание соплей

в контексте числодробилок низкоуровневых - не надо

Алексей
19.07.2018
14:40:21
в контексте числодробилок низкоуровневых - не надо
а я всё таки думаю, что надо, потому что всё таки у крестового компилятора больше возможностей для оптимизации

Nikolay
19.07.2018
14:40:27
вот пишешь ты код под видюху, чтобы биткойны майнить или нейросетки считать, у тебя несколько уровней кэшей, содержимым которых надо жонглировать очень тонко. И что ты будешь использовать для аллокации, new?)) или таки malloc побайтовый с маппингом в конкретную память

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

чем меньше магии там - тем лучше

Алексей
19.07.2018
14:41:18
Google
Nikolay
19.07.2018
14:41:36
затем что не будет у тебя на 100% низкоуровнего кода близкого железу
в случае разработки векторных архитектурных либ - будет

Nikolay
19.07.2018
14:42:28
я сам до сих пор иногда передергиваюсь, когда смотрю на исходники cpython и вижу там везде оператор register

Алексей
19.07.2018
14:42:42
в случае разработки векторных архитектурных либ - будет
ну кстати на векторных либах числодробилки не заканчиваются

Nikolay
19.07.2018
14:42:49
тебе никто в крестах malloc вызвать не запретит
никто мне не запретит на си писать и послать ненужные кресты

и там тоже никаких плюсов, упаси боже

Алексей
19.07.2018
14:43:25
я вот сталкивался с такой штукой как OpenFOAM - это хрень для расчётов в области механники сплошных сред

и там как раз кресты

и на сишке скорее всего будет просто адский ужас, потому что там на крестах сделан более менее удобный DSL

Nikolay
19.07.2018
14:44:04
и там как раз кресты
ну, видимо, их устраивало то, что получили

Алексей
19.07.2018
14:44:16
и математика там неслабая

Алексей
19.07.2018
14:44:28
> DSL > на крестах
представь себе

Nikolay
19.07.2018
14:44:38
представь себе
ну, жалко проект, чо

хотя, в принципе, он, видимо, решает задачу, для которой писался

Алексей
19.07.2018
14:45:32
ну, жалко проект, чо
жалко у пчёлки, а без такого DSL (который кстати быстро работает из-за шаблонной магии, инлайнов и прочих крестовых штук) код математики превратится в нечитаемое говно

Google
Алексей
19.07.2018
14:46:11
сейчас конечно обычно не городят такие штуки и тупо юзают Python как обёртку

Nikolay
19.07.2018
14:46:18
в этом случае выбрали удобство, и норм

Nikolay
19.07.2018
14:46:30
тут ты не прав
прав в общем случае

Алексей
19.07.2018
14:46:41
шаблонная магия на то и шаблонная магия, что магичить на этапе компиляции

Nikolay
19.07.2018
14:47:08
какой-то супер хитрожопый компилятор мог бы в каждом конкретном случае проводить хитрые оптимизации, но генерик-код не будет быстрее оптимизированного типизированного

Nikolay
19.07.2018
14:47:26
нет, не прав
ну, я не ставил целью тебя переубедить. Это просто так

ууууу
именно

единственная альтернатива, которая могла бы тягаться хоть как-то - это весьма узкоспециализированный JIT

Алексей
19.07.2018
14:48:05
ты примерно представляешь себе как шаблоны работают?

Nikolay
19.07.2018
14:48:08
но с этим не к плюсам

Алексей
19.07.2018
14:48:35
потому что в плюсах нет никакого "генерик кода"

Nikolay
19.07.2018
14:48:47
потому что в плюсах нет никакого "генерик кода"
шаблоны - это и есть генерик-код

Алексей
19.07.2018
14:49:11
шаблоны - это и есть генерик-код
сами шаблоны не компилируются ни в какой код

вот их специализации - да

Nikolay
19.07.2018
14:49:23
и работают генерики подобные во всех компиляторах примерно одинаково - исследуются типы в программе, и дальше под каждый генерится копипастой бойлерплейт

Aragaer
19.07.2018
14:49:57
шаблоны это кодогенерация

а не генерик код

Google
Алексей
19.07.2018
14:50:09
и код специализации шаблонов почти ничем для компилятора не отличается от обычного кода без использования шаблонов

Aragaer
19.07.2018
14:50:11
генерик код это void *

Nikolay
19.07.2018
14:50:17
а не генерик код
одно другого никак не исключает

Aragaer
19.07.2018
14:50:32
ну .. да

Nikolay
19.07.2018
14:50:47
ну не совсем, точнее не везде
альтернативный пример?

Aragaer
19.07.2018
14:50:58
только я пока не видел, чтобы кто-то пытался именно на шаблонах написать генерик код, который бы не превращался в полную копию реализации для каждой специализации

Алексей
19.07.2018
14:51:00
Admin
ERROR: S client not available

Nikolay
19.07.2018
14:51:07
если брать компиляторы, а не виртуальные машины

Java
Java не в кассу, там JIT и вообще другое устройство

Aragaer
19.07.2018
14:51:20
в жаве не шаблоны, там генерики это компайл-тайм проверка типов

Aragaer
19.07.2018
14:51:32
в рантайме специализации отсутствуют

Алексей
19.07.2018
14:51:49
и бойлерплейта собственно там нет, и кодогенерации аля плюсы тоже

Nikolay
19.07.2018
14:52:29
и бойлерплейта собственно там нет, и кодогенерации аля плюсы тоже
но зато есть слой абстракции в лице виртуальной машины, которой иногда магией jit удается обойти по производительности статичный скомпилированный под архитектуру код

Google
Nikolay
19.07.2018
14:53:29
а я и не с этим спорил
а с чем? мне не нравится концепция “похер, компилятор порешает”. Во многих случаях реально порешает, но есть много задач, где это только мешает

Aragaer
19.07.2018
14:53:33
я когда-то читал, что llvm умеет сгенерить код, содержащий и бинарник и исходный ast, чтобы уметь в рантайме сделать специализацию.

Алексей
19.07.2018
14:54:00
Aragaer
19.07.2018
14:54:02
но может быть это было на уровне фантастики

Nikolay
19.07.2018
14:54:13
ну так C++ не запрещает тебе руками порешать те места, даже на сишке, если уж так надо
но зачем мне плюсы, если я могу просто на сишке накидать?

Алексей
19.07.2018
14:54:29
но зачем мне плюсы, если я могу просто на сишке накидать?
просто опять же, не все числодробилки - это прям низкоуровневый код

и я уже приводил пример

Aragaer
19.07.2018
14:54:38
потому что за плюсы больше зарплату дают

Алексей
19.07.2018
14:55:23
где матрицы и вектора фактически лежат лишь на самом нижнем уровне вычислений, а там по верх них наворочено ещё всякого

и вот за счёт того что это всякое наворочено на крестах достигается выжимка парочки процентов производительности

наверное

Nikolay
19.07.2018
14:56:27
просто опять же, не все числодробилки - это прям низкоуровневый код
это не совсем тот тезис, который я имел в виду. Я имел в виду, что самый эффективный способ написать числодробилку - это написать ее руками вплотную к железу, поменьше полагаясь на оптимизации

Aragaer
19.07.2018
14:56:46
ну это отдельный паззл

Nikolay
19.07.2018
14:56:51
что не меняет того, что можно на это забить и писать хоть на джаваскрипте, но и работать оно будет как говно, не обессудьте

Aragaer
19.07.2018
14:57:14
понимать, как оно будет выполняться на железе, а потом пытаться от языка добиться того, чтобы на выходе получилось то, что тебе требуется

Aragaer
19.07.2018
14:57:35
это правда меньше для числодробилок, а больше для всяких загрузчиков

Nikolay
19.07.2018
14:58:17
загрузчики тут немного ни при чем. Загрузчик - это простейшая штука

Алексей
19.07.2018
14:58:19
что не меняет того, что можно на это забить и писать хоть на джаваскрипте, но и работать оно будет как говно, не обессудьте
не надо тут сравнивать javascript и C++, который даёт огромный контроль и простор для всяких оптимизаций как руками так и компилятором

Aragaer
19.07.2018
14:58:34
это смотря что от загрузчика требуется

Алексей
19.07.2018
14:58:37
это разные вещи, совершенно

Nikolay
19.07.2018
14:58:43
это смотря что от загрузчика требуется
да даже груб при всей своей развесистости не так сложен внутри

Страница 5976 из 9768