Свежие комментарии
Title | Comment |
---|---|
<i>делаете свой клон</i> В терминах GitHub это называется fo |
делаете свой клон |
А касаемо сути замечания: меня тоже временами удивляет, что |
А касаемо сути замечания: меня тоже временами удивляет, что делают в опенсорсных графических приложениях. Но я один раз уже высказался на эту тему публично и на меня обиделись. Непублично (и по другим моментам) - тоже бывает неудобно.... |
Да можно, конечно. Лучше, конечно, в основной пакет, а не в |
Да можно, конечно. Лучше, конечно, в основной пакет, а не в demosaic packs. Т.е. под тройной лицензией (LGPL/CDDL/LibRaw) Наилучший способо: делаете свой клон на GitHub (https://github.com/LibRaw/LibRaw) правите как вам нравится, а потом свистите в свисток чтобы я помержил в основное дерево. Но и просто измененные исходные тексты я тоже приму, хотя технологически это неудобнее для меня. |
<i>As for what the algorithm does, it performs a Discrete Co |
As for what the algorithm does, it performs a Discrete Cosine Transform in 8x8 blocks (separately within each RGGB subarray of the bayer mosaic raw data) and then damps those Fourier coefficients that are related to vertical and horizontal lines, if the contrast is low enough (high contrast vertical and horizontal lines are treated as detail). The slider sets the contrast threshold below which the debanding is allowed to operate. Long story short -- yes it does blend neighboring pixels. (вздыхая) ну что сказать. Они, конечно, тупые уроды, слов нет. Я начинаю подумывать, чтобы внести в LibRaw свой код, а это вообще можно? |
Ну раз обратные посты не работают, чтобы Алексею почтальоном |
Ну раз обратные посты не работают, чтобы Алексею почтальоном не работать. Если вы про ключ -aline - вот ссылка на аторское объяснение (второй пост) Если про то о чем Алексей написал (-agreen) - то это другая история. И мне показалось оно (оригинал) работает не намного лучше (на том, что мне попадалось). Может просто показалось? |
Честно хотите? Да я понятия не имею :) Контрибуторы <s>спи< |
Честно хотите? Да я понятия не имею :) Контрибуторы Разбираться в деталях этого добра считаю нужным только если фича уже заявлена, а contributed код работает из рук вон (как случилось с экспокоррекцией). |
У меня теперь такой вопрос - а подавление banding там как сд |
У меня теперь такой вопрос - а подавление banding там как сделано? В принципе, я пробовал, и если честно - мне показалось, что оно всё-таки слишком много деталей убирает. Вот, скажем, в topaz denoize debanding работает на удивление хорошо. Причём на больших ISO у 5dmk2 - это must have, я бы сказал... |
Если задача пилится на крупные (десятки-сотни тысяч инструкц |
Если задача пилится на крупные (десятки-сотни тысяч инструкций) куски, независимые по write-данным, то в распараллеливании никакой особой науки нет, берешь и параллелишь. Если куски более мелкие, то надо смотреть, не сожрет ли оверхед на синхронизацию это самое распараллеливание. Вот, кстати, и возможный ответ на загадку intel/MS: на спинлоке быстрее синхронизироваться, чем на чем-то еще (каком-то засыпании-просыпании). А давать какие-то более конкретные советы, не зная специфики задачи - это газифицировать лужи. |
спасибо за мысли, всё так... Сейчас просто надо хоть как-то |
спасибо за мысли, всё так... |
Я не знаю что у вас за задача, но если данных много, а досту |
Я не знаю что у вас за задача, но если данных много, а доступ к ним (в пределах треда) локален, то зачем вы вообще фигачите близкие куски данных в разных тредах? Если можно линейно читать (ну грубо, считаем сумму или там гистограмму), то лично я бы пилил на большие куски, может быть с хитро выставленным смещением, чтобы кэш L3 по возможности не размывался (т.е. ассоциативность в разных потоках кажет в разные места). Ну и фигачить, фигатором. Оно или упрется в memory bandwidth (обсчет быстрее памяти) и тогда кэш не спасает и практически не нужен (для префетча только), или определяющим является именно скорость расчета, тогда значит в CPU упрется (и тогда рулит SSE). |
да, забыл ещё сказать, что делается обсчёт довольно большого |
да, забыл ещё сказать, что делается обсчёт довольно большого объёма данных, который скорее всего полностью в кеш не влазит. Соответственно, если потоки стартуют обсчёт практически одновременно, то неисключено, что они по данным идут примерно рядом друг с другом и соответственно, это вызывает более эффективное использование процессорного кеша и меньше фетчей из памяти. А когда работает через конкарренси, оно может стартовать потоки в соответствии со своими какими-то условиями, а за это время уже работающие потоки уйдут по данным далеко и возвращение к ним вызовет переобращение к памяти... Ну, где-то так в качестве гипотезы объяснения... |
блин, промахнулся. Итак, на рабочую функцию приходится около |
блин, промахнулся. |
ну да, на рабочую функцию получается приходится что-то около |
ну да, на рабочую функцию получается приходится что-то около 85% всейнагрузки |
Ну вот если VCшный профилер не врёт, то получается около 13% |
Ну вот если VCшный профилер не врёт, то получается около 13% прожирается только на следующих 6-ти функциях Function Name Inclusive Samples Exclusive Samples Inclusive Samples % Exclusive Samples % Особенно SpinWait нам как бе намекает... Вот накуа оно там??? |
Хорошая мысль, кстати, спасибо. Ща погляжу... |
Хорошая мысль, кстати, спасибо. Ща погляжу... |
А пошто оно так тормозит - не видно? 25% должны бы быть видн |
А пошто оно так тормозит - не видно? 25% должны бы быть видны профайлером... |
Хе-хее, грабельки они такие грабельки... Короче, возможно в |
Хе-хее, грабельки они такие грабельки... Короче, возможно вам будет таки интересно, я сделал простенький бенчмарк на расчёте своих алгоритмов: Concurrency Runtime::parallel_for() vs. boost::threadpool 0.2.5 (с патчем утечки памяти и падения из их багтрекера и моими мелкими правками совместимости с VC2010). Результаты на 6 ядрах такие: Linear = 28237 Linear = 29187 Linear - это линейный алго, 1 прогон за тест, и по 6 прогонов на каждый из распараллеливающих алгоритмов. Числа после равенства - время в миллисекундах. Релизный билд. Разница в 25% видна невооруженным глазом. Плюс бОльшая дисперсия времени в Concurrency Runtime. Плюс там же ещё не пофиксенные утечки памяти... В общем, Concurrency Runtime юзать, конечно, можно, там побольше всяких вкусняшек, а утечку рано или позно исправят, но когда надо молотить данные без компромиссов - 25% это совсем не айс. |
Ну да... Вот и приходится прыгать... Ну мне-то ещё положим л |
Ну да... Вот и приходится прыгать... |
Не, ну OpenMP - тот еще уродец, особенно в сочетании с C++ ( |
Не, ну OpenMP - тот еще уродец, особенно в сочетании с C++ (исключения, невозможность в #pragma omp описать член класса). И столь же понятно, что нужен какой-то более другой механизм, которого (общепринятого) нет. |
Да, не, что там есть какая-то идея - понятно, но я про то, ч |
Да, не, что там есть какая-то идея - понятно, но я про то, что МС сделали эту хрень ненастраиваемой. Вот где фейл... Да, я тоже сути проблемы не понимаю, но претензия у меня только к отсутствию настройки) Кстати, вот тут, чувак просто кипятком писает от счастья:
Так шта чую что пора уже заканчивать безуспешно гуглить и пора писать бенчмарк для обычного трид-пула и их Concurrency Runtime... |
Судя по тому, что интел принял то же решение - там есть кака |
Судя по тому, что интел принял то же решение - там есть какая-то идея. Хотя мне эта идея непонятна совсем, но может быть какая-то типичная ошибка, вроде пропуска синхронизации (а так - оно в подавляющем случае синхронизируется само). Чудеса какие-то. |
ага, спасибо, видел. В том то и дело, что регулируемая... Я |
ага, спасибо, видел. В том то и дело, что регулируемая... Я вот всё пытаюсь понять, какими мыслями надо руководствоваться, чтобы принимать такие решения, как вот здесь они приняли с этой херью? Я б такого человека выгнал бы с работы с совершенно волчьей характеристикой, позорище какое-то просто... МС можно и есть за что ругать, но они всё равно одни из лучших производителей софта в мире. Но такие вот решения просто убивают... |
git pull Значит это у меня |
git pull Значит это у меня косяк где-то. Мозилла - понимает mc, lynx - нет. В общем то не критично. mc-4.6.2-8mdv2009.1
env|grep LC |
По первой ссылке (stackoverflow) пишут, впрочем, что у интел |
По первой ссылке (stackoverflow) пишут, впрочем, что у интела та же херь. Но регулируемая |
BOM-а нет в API-notes-rus, |
BOM-а нет в API-notes-rus, добавил. В остальных русских - есть и все клиенты обязаны фишку сечь (без этого с UTF вообще жизни нет) |
Я поправил. У меня для |
Я поправил. У меня для счастья надо <code> ставить |
После добавишь - еще были |
После добавишь - еще были слова про мету, чарсет, utf8. Скушались кем то по дороге. |
Значит у меня совсем |
Значит у меня совсем тупой. |
Да, явно придётся как-то изгаляться... |
Да, явно придётся как-то изгаляться... |
Может проще интеловский компилятор взять? Он не такой дорого |
Может проще интеловский компилятор взять? Он не такой дорогой, окупится на экономии времени. У интела в этом месте, с виду, ума побольше. |
Pages
