Re[11]: Производительность .Net на вычислительных задачах
От: Mystic Artifact  
Дата: 21.10.20 16:10
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

MA>> А Linq2d версия выполняет такие же аллокации или нет?

S>Да, конечно.
Тогда, все остальные вопросы на мой взгляд отпадают.
Re[11]: Производительность .Net на вычислительных задачах
От: Mystic Artifact  
Дата: 21.10.20 17:22
Оценка:
Здравствуйте, Sinclair, Вы писали:

MA>> Кешируются ли эти буфера или таки выделяются новые?

S>Нет, ничего не кэшируется. Я подозреваю, что кэширование таких буферов ухудшит производительность. Сейчас их выделение — это просто бамп указателя кучи. А кэширование будет лазить по пулу, искать свободные, в конце возвращать в пул.
Вообще я с тобой полностью согласен, но не потому, что там будет лазить по пулу или возвращать, а потому, что наиболее эффективная стратегия выделения памяти (кеширования) будет зависеть от сценария использования.
И мне лично видится, что бенчмарк в этом плане весьма далёк от этого, а для вызовов с меньшей интенсивностью — мне кажется, что более оптимальной стратегией будет как можно быстрее освободить память. Хотя тут уже могут быть заморочки дотнета с LOH, но опять же — с ним могут быть заморочки у кого там, что-то лежит, а когда там всё своё, как в бенчмарке — то это пофигу.
В любом случае у каждого в голове какой-то свой паттерн использования, и на мой (личный) взгляд вот этот — самый простой способ — пока и есть самый универсальный и эффективный, ну по крайней мере если не закладываться на батч-обработку однотипных массивов.

PS: Как нибудь, в качестве альтернативных ключей компиляции, но не для C++, а на .NET5 предлагаю заюзать такое:
set COMPlus_ReadyToRun=0,COMPlus_TC_QuickJitForLoops=1,COMPlus_TieredPGO=1
. Как это подружить с benchmarksdotnet я не знаю.
Re[6]: Производительность .Net на вычислительных задачах
От: a7d3  
Дата: 21.10.20 18:03
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>>>Не. CLI — это кошмар, который забыть и не использовать.

T>>Ох, CLI прекрасен, это офигенное преимущество dotnet'а перед всеми остальными платформами. Нет и не может быть ничего лучше для взаимодействия между управляемой и неуправляемой платформой. Жаль, что только под винду
LVV>Вот именно.
LVV>Либо мы пишем на стандартном С++ под любую платформу.
LVV>Либо мы САМИ прибиваем СЕБЯ гвоздями в кресту от Микрософт...

Тут вопрос в другом, а именно в инструментарии для интероперабилити менеджмент кода с анменеджмент (ансейфти).
Re[6]: Производительность .Net на вычислительных задачах
От: CreatorCray  
Дата: 21.10.20 18:36
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Было бы ещё неплохо научиться его использовать в гитхабовом CI конвеере

Это я делать не пробовал.

S>а по сборке vcxproj ICC инструкция есть?

ICC встраивается в вижуалку и его параметры появляются в Project properties
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: Производительность .Net на вычислительных задачах
От: σ  
Дата: 21.10.20 19:15
Оценка:
S> указана оптимизация по скорости (-O3)

А с `-Ofast -march=native` можно увидеть C++? Или в фильтрах только целочисленная арифметика?
Отредактировано 21.10.2020 19:22 σ . Предыдущая версия .
Re[2]: Производительность .Net на вычислительных задачах
От: a_g_99 США http://www.hooli.xyz/
Дата: 21.10.20 19:19
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Вывод тут только один — оптимизатор в Linq2q классный и наивная реализация на C++ проигрывает


вывод человек который делал графики не умел пользоваться С++
Re[3]: Производительность .Net на вычислительных задачах
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 22.10.20 02:04
Оценка:
Здравствуйте, a_g_99, Вы писали:

KP>>Вывод тут только один — оптимизатор в Linq2q классный и наивная реализация на C++ проигрывает

__>вывод человек который делал графики не умел пользоваться С++

Ну это грубо, по моему мнению
Re[4]: Производительность .Net на вычислительных задачах
От: CreatorCray  
Дата: 22.10.20 02:30
Оценка: :))) :)))
Здравствуйте, kaa.python, Вы писали:

__>>вывод человек который делал графики не умел пользоваться С++

KP>Ну это грубо, по моему мнению
Для КСВ это даже по-дружески
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[2]: Производительность .Net на вычислительных задачах
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.10.20 02:31
Оценка:
Здравствуйте, σ, Вы писали:
σ>А с `-Ofast -march=native` можно увидеть C++?
Пока что я не понимаю, как заставить gcc подхватывать additional flags из vcxproj.
σ>Или в фильтрах только целочисленная арифметика?
C4 — чисто целочисленная.
Sauvola — там смешаны в одном выражении byte, int, long, double.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Производительность .Net на вычислительных задачах
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.10.20 02:32
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Ну это грубо, по моему мнению

Зато правда
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Производительность .Net на вычислительных задачах
От: Sheridan Россия  
Дата: 22.10.20 07:44
Оценка:
Здравствуйте, Sinclair, Вы писали:

σ>>А с `-Ofast -march=native` можно увидеть C++?

S>Пока что я не понимаю, как заставить gcc подхватывать additional flags из vcxproj.
Выкинь это недоподелие, мимикрирующее под конфиг проекта, и пользуй cmake
Matrix has you...
Re[7]: Производительность .Net на вычислительных задачах
От: Sheridan Россия  
Дата: 22.10.20 07:46
Оценка:
Здравствуйте, Serginio1, Вы писали:

LVV>>Либо мы пишем на стандартном С++ под любую платформу.

LVV>>Либо мы САМИ прибиваем СЕБЯ гвоздями в кресту от Микрософт...

S> Тема то про .Net которая под любую платформу

А речь и не про платформу.
Matrix has you...
Re[8]: Производительность .Net на вычислительных задачах
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.10.20 07:51
Оценка:
Здравствуйте, Sheridan, Вы писали:

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


LVV>>>Либо мы пишем на стандартном С++ под любую платформу.

LVV>>>Либо мы САМИ прибиваем СЕБЯ гвоздями в кресту от Микрософт...

S>> Тема то про .Net которая под любую платформу

S>А речь и не про платформу.

Вообще то про сравнение нативных и управляемых приложений под любую платформу.
Здесь еще можно добавить для сравнения .Net Native и CoreRT.
и солнце б утром не вставало, когда бы не было меня
Re[6]: Производительность .Net на вычислительных задачах
От: Sheridan Россия  
Дата: 22.10.20 07:52
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>В gcc — не знаю как.

Если хочешь более безопасный код, ориентированный на текущий процессор, то
-march=native -O2
Matrix has you...
Re[9]: Производительность .Net на вычислительных задачах
От: Sheridan Россия  
Дата: 22.10.20 07:55
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

S>Вообще то про сравнение нативных и управляемых приложений под любую платформу.

Да, но в этой ветке про прибивание себя гвоздями к единственному "производителю". Иными словами — когда микрософт решит похоронить дотнет — можно будет сделать мало чего, разве что попробовать core форкнуть.
Matrix has you...
Re[7]: Производительность .Net на вычислительных задачах
От: LaptevVV Россия  
Дата: 22.10.20 08:02
Оценка:
LVV>>В gcc — не знаю как.
S>Если хочешь более безопасный код, ориентированный на текущий процессор, то
S>
S>-march=native -O2 
S>

Спасибо.
Хотя вряд ли оно так уж поддерживает rizen 5...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Производительность .Net на вычислительных задачах
От: Sheridan Россия  
Дата: 22.10.20 08:37
Оценка: 4 (2) +1
Здравствуйте, LaptevVV, Вы писали:

LVV>>>В gcc — не знаю как.

S>>Если хочешь более безопасный код, ориентированный на текущий процессор, то
S>>
S>>-march=native -O2 
S>>

LVV>Спасибо.
LVV>Хотя вряд ли оно так уж поддерживает rizen 5...

Ну можешь проверить что оно включает кактотак:
sheridan@spc $ gcc -v -E -x c /dev/null -o /dev/null -march=native 2>&1 | grep /cc1
 /usr/libexec/gcc/x86_64-pc-linux-gnu/9.3.0/cc1 -E -quiet -v /dev/null -o /dev/null -march=haswell -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mno-sgx -mbmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b -mno-waitpkg -mno-cldemote -mno-ptwrite --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=haswell
Matrix has you...
Re[10]: Производительность .Net на вычислительных задачах
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.10.20 08:55
Оценка:
Здравствуйте, Sheridan, Вы писали:

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


S>>Вообще то про сравнение нативных и управляемых приложений под любую платформу.

S>Да, но в этой ветке про прибивание себя гвоздями к единственному "производителю". Иными словами — когда микрософт решит похоронить дотнет — можно будет сделать мало чего, разве что попробовать core форкнуть.

А с чего MS хоронить дотнет? Тем более, что он опенсорс. При этом к развитию как раз прибегают и сторонние разработчики.
Тот же Java то же принадлежит часть оракулу часть гуглу.
Что касается C++\CLI то это конечно уникальная вещь для совмещения управляемого и неуправляемого кода.
Только вот для Core его не перенесли (только для Windows Перенос проекта C ++ / CLI на .NET Core).
Больше проблема в этом!
и солнце б утром не вставало, когда бы не было меня
Re: Производительность .Net на вычислительных задачах
От: σ  
Дата: 22.10.20 11:04
Оценка:
S>Мой доклад успешно прошёл. Запись я обещал не выкладывать до середины ноября, да и не особо там чего смотреть.
S>Хочу поделиться самой зрелищной частью: сравнение производительности разных способов реализации вычислительно-интенсивного кода.

Самый главный вопрос: результаты работы фильтров сравнивались друг с другом попиксельно? Для фильтров с не только целочисленной арифметикой (для исключительно целочисленной разницы не должно быть).
Re[4]: Производительность .Net на вычислительных задачах
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.10.20 11:33
Оценка:
Здравствуйте, Sheridan, Вы писали:
S>Выкинь это недоподелие, мимикрирующее под конфиг проекта, и пользуй cmake
А есть инструкция по использованию cmake с VS2019 на проектах C#/C++?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.