Свежие комментарии

Title Comment
Мерил Cuda функциями CUT_SAFE_CALL(cutCreateTimer(&timer

Мерил Cuda функциями
CUT_SAFE_CALL(cutCreateTimer(&timer));
CUT_SAFE_CALL(cutStartTimer(timer));
//......................
CUT_SAFE_CALL(cutStopTimer(timer));
CUT_SAFE_CALL(cutDeleteTimer(timer));
Такой результат можно получить на любой глобал функции (т.е. вызываемой из хоста, но работающей в девайсе).

dcraw_emu - тестовое приложение, выдающее те же результаты,

dcraw_emu - тестовое приложение, выдающее те же результаты, что и dcraw с теми же ключами. Те же - это значит что MD5 совпадает.

Что же до Rawnalyze - я не знаю, что у нее за коэффициенты (и, честно говоря, не хочу этого знать)

Empty call на 160 микросекунд - это что-то очень странное. Л

Empty call на 160 микросекунд - это что-то очень странное. Люди получают цифры в районе 10-30 usec. Подозреваю, что вы неправильно меряете.

С другой стороны, гонять данные на видеокарту, чтобы посчитать 2+2 или даже просто сумму элементов вектора - категорически невыгодно. Вы же этот вектор туда льете со скоростью, ну три гигабайта в секунду, ну может 4 (надо, кстати, на новой материнке померять). А на CPU это будет молотить со скоростью памяти т.е. в разы выше.

Конечно, всякий анроллинг и "рекурсию" делать через макроподстановки (неважно, препроцессором или темплейтером) - удобно.

А что касается CuBLAS - так это паттерн такой. Берем 200 мегабайтные матрицы и умножаем, умножаем, умножаем...

все равно немножко не то. Остается желтая грязь много где, а

все равно немножко не то. Остается желтая грязь много где, а при последующей обработке она разрастается.

Нет, конечно, можно и стереть фото, благо не шедевр, а маленький кусочек репортажа, и перевести в ЧБ, но хочется решить проблему.

А у вас незапланировано в dcraw_emu режим, в котором можно тупо скопировать коэффициенты из rawanalyzer'а и получить тот же цвет?

dpp с точкой черного работает вполне прилично, что для недод

dpp с точкой черного работает вполне прилично, что для недодержаных кадров весьма критично.

В общем - популярная российская вяленная рыба и полный сибир

В общем - популярная российская вяленная рыба и полный сибирский зверь :)

надо подумать о поселении какого-нибудь леопарда в VM

Ты будешь смеяться, но я смог хоть как-то выкрутить цвет в digital photo professional, хотя это еще далеко до картинки в rawanalyzer'е

Не знаю. Если бы знал, думаешь купил бы я маковский ноут ? К

Не знаю. Если бы знал, думаешь купил бы я маковский ноут ?
Конвертор был не единственным критерием, но довольно существенным.

Естественно, под винду под нее не знаешь верного решения?

Естественно, под винду

под нее не знаешь верного решения?

Я боюсь, что мой совет по конвертору тебя не устроит. Но в п

Я боюсь, что мой совет по конвертору тебя не устроит. Но в последних статьях он есть (в каждой).

Впрочем, некоторые из CuBLAS функций могут быть полезны (ну

Впрочем, некоторые из CuBLAS функций могут быть полезны (ну там инициализация, аллокаторы, диагностика ошибок и т.п.), но "тяжелые" матричные и векторные вычисления наверное все же лучше делать самому, причем как девайс функции.

Исходники CuBLAS я тоже смотрел. Тоже не понравилось. Те же

Исходники CuBLAS я тоже смотрел. Тоже не понравилось. Те же макросы.
Может быть каждая из CuBLAS функций и эффективна, но сама концепция порочна. Программу для GPU нельзя собирать как кубики из CuBLAS. Она по определению будет не эффективной.
Оказывается только вызов пустой глобал функции стоит 0.16 мсек. Имхо, нвидиа разработала CuBLAS на скорую руку, причем в Си стиле и предназначает в основном для использования в старых фортран-пакетах.

Кстати, о балансе белого, но совсем не по теме статьи :) си

Кстати, о балансе белого, но совсем не по теме статьи :)

сижу, медитирую на фото, снятое при свете лампы, типа натриевой (жуткий оранжевый цвет, убивающий все цвета). При этом еще и содержание в основном состоит из объектов малонасыщенных цветов (городская улица). Экспериментирую с получением хоть сколько-нибудь вразумительного цвета. ACR/лайтрум - не способен. Делаю после него обработку в фотошопе - цвет становится еще грязнее.

в rawanalyzer'е далаю wb подостаточно большому куску асфальта - картинка приобретает вполне вменяемый вид (то, что совсем малонысыщенно, стало близко к ЧБ, кое где появляются слабые оттенки цветов, достаточно вразумительные, насыщенные цвета весьма чистые. Но у него своего конвертора нет. Пытаюсь скормить его коэффициенты dcraw'у - результат и близко не лежал.

не посоветуешь из своих экспериментов конвертор для таких случаев? Или как перенести коэффициенты в dcraw.

То, что надо было заранее купить фильтр - знаю и согласен :)

Не в CUDA, а вообще вычислителями. Но насколько я помню исх

Не в CUDA, а вообще вычислителями.

Но насколько я помню исходники CuBLAS, там все в макросах (я туда сунул нос и сбежал)

>Ну да, такие вещи обычно на препроцессоре делаются, но темп

>Ну да, такие вещи обычно на препроцессоре делаются, но темплейтер ничем не хуже

"обычно"? в CUDA?

Очень интересно. Не могли бы Вы дать ссылку на CUDA программу с таким примером?

Ну да, такие вещи обычно на препроцессоре делаются, но темпл

Ну да, такие вещи обычно на препроцессоре делаются, но темплейтер ничем не хуже (считать ли параметризацию с типом и авто-fallback удобнее или нет - дело вкуса)

Что-то здесь двиг форума исказил код программы, в template н

Что-то здесь двиг форума исказил код программы, в template нет параметров. Правильный код смотрите в http://www.gamedev.ru/code/forum/?id=80317.

В тот-то и фокус что не руками. Это все можно поручить компи

В тот-то и фокус что не руками. Это все можно поручить компилятору. Вот так

// f = 2^log2(N) ÷
template
struct Exp2Log2{ enum { value = 2*Exp2Log2::value };};
template<>
struct Exp2Log2<1> { enum { value = 1 };};

// RecursivSum, " "
// sdata blockSize
template
__device__ void RecursivSum(__shared__ myType *sdata)
{
if (threadIdx.x < blockSize-blockSizeAligned)
sdata[threadIdx.x] += sdata[threadIdx.x + blockSizeAligned];
__syncthreads();
// instance , blockSize, blockSizeAligned/2:
if (blockSizeAligned >= 2) //
RecursivSum(sdata);
};

// g_idata n, g_odata
template
__global__ void VectorSum(const myType *g_idata, myType *g_odata, const unsigned int n)
{
__shared__ int sdata[blockSize];
sdata[threadIdx.x] = 0;
for (unsigned int i = threadIdx.x; i < n; i += blockSize)
sdata[threadIdx.x] += g_idata[i];
__syncthreads();
RecursivSum::value>(sdata);
if (threadIdx.x == 0) g_odata[0] = sdata[0];
}

Да, текст от Харриса реально вставляет. Но вот что я жутко

Да, текст от Харриса реально вставляет.

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

Добрый день Алексей, Затронутая в статье проблема относится

Добрый день Алексей,
Затронутая в статье проблема относится к классу проблем редукции. Интересное решение дал Mark Harris в SC07_CUDA_5_Optimization_Harris.pdf.
Развивая эти идеи я пришел к возможности реализации некоторых из методов метапрограммирования в CUDA, в частности удалось пирамиду представить в виде квази-рекурсии (здесь слово квази употреблено поскольку настоящей рекурсии нет, а используются новые instance той же функции). Детали смотрите в http://www.gamedev.ru/code/forum/?id=80317

да, я имел ввиду % установленных 8800&apos;х моделей. http

да, я имел ввиду % установленных 8800'х моделей.

http://arstechnica.com/news.ars/post/20070730-nvidia-continues-to-take-g...

Nvidia занимает треть рынка.
Очень большая часть рынка - лаптопы и дешевые модели.

<q>А дальше все от задачи.</q>

Во-от. Год назад я бы попросил фотошопный фильтр для удаления шумов.
NeatImage работал секунд 20. Четырех-пятикратное ускорение было бы кстати.
Но сейчас на С2Q он работает 4 секунды.
Собственно, вопрос - какие задачи принесут радость простым пользователям?
Разумеется, скучающий научный работник стойке с дюжиной блейдов предпочет
десктоп SLI-8800-gtx, у которого есть восхитительные применения помимо
транспонирования матриц и прочей протирки оптических осей. :-)

Я не понимаю, почему 1-2 $(наверное все-таки %) рынка? CUDA

Я не понимаю, почему 1-2 $(наверное все-таки %) рынка? CUDA работает на всех Geforce 8xxx/9xxx, это что-нибудь в районе трети рынка новых машин (и 2/3 от машин с отдельной видеокартой). Т.е. уже можно.

Что касается перформанса, то умножение матриц на 8800GTX - 100Gflops на их библиотеке, народ вытаскивает до, если не путаю, 170. 2xWoodcrest 5140 (и то же самое C2Q) у меня давали 48 гигафлопсов на single precision.

А дальше все от задачи. Есть класс задач, который ложится на CUDA очень хорошо и там выигрыши в десятки раз. Есть те, которые плохо - там в разы или менее. Причем, то что ляжет на C2Q (возможно параллельное исполнение без блокировок) - ляжет и на Geforce

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

А на фига козе баян ... CUDA трудовому народу? - client-onl

А на фига козе баян ... CUDA трудовому народу?

- client-only solution
- видеокарта занимаюшая 1-2$ рынка
- not scalable (жестко ограничены объемом видео-памяти)

http://bioinformatics.cribi.unipd.it/cuda/

two GeForce 8800 GTX .., running on a 3 GHz Intel Pentium IV processor ..,
our implementation performs from 2 to 30 times faster

А как насчет сравнения с dual Core2Quad с 8GB RAM? :-)

Какой троллинг, я просто не понимаю Илью и пытыюсь понять, ч

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

Илья высказал некоторую мысль про бесполезность усиления ("аппаратного увеличения ISO"), что разница между аппаратным усилением и грамотной софтверной конвертацией с плавающей точкой 0.3 EV в худшем случае, кое-где уже усилитель выкинули и т.д. Я предложил протестировать ISO 100 vs ISO 1600, Илья вроде бы не возражал, но как дошло до дела, после пары итераций на тему "а ты сам проверь" почему-то выплыла тема про сравнение изменения на 1 стоп, да еще и со странным цитированием :) Мы куда идем?

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

Танцу полярных ответчиков тут не место. Будете троллить - з

Танцу полярных ответчиков тут не место. Будете троллить - закрою комментарии на недельку, чтобы остыли.

Секундочку, о каких текстах идет речь? Мы же только что бе

Секундочку, о каких текстах идет речь?

Мы же только что беседовали о бесполезности усилителя перед АЦП и возможностью поднять снимок с ISO 100 -4 EV до эквивалента ISO 1600? :)

Что за "горячая экспозиция"? А зачем так много? Мы ж хотим

Что за "горячая экспозиция"?

А зачем так много? Мы ж хотим просто недодержанный ISO 100 поднять до ISO 1600? :)

> А зачем так много? Анатолий, там сказано - "На каждый сто

> А зачем так много?

Анатолий, там сказано - "На каждый стоп усиления...Разница между умножением с плавающей точкой в raw-сонверторе и аналоговым усилением в камере по замерам даёт 0.3eV по шумам - в худшем известном мне случае." Вот мне и интересно, что конкретно происходит применительно к Вашей камере.

Я Вас прошу не домысливать текстов, и затем не спорить с Вашими же представлениями о том, что авторы хотели сказать.

Анатолий, давайте все исходники посмотрим - ставим предельно

Анатолий, давайте все исходники посмотрим - ставим предельно "горячую" экспозицию на 1600 и с ней снимаем всё, от 1600 до 100 с минимально устанавливаемым на камере шагом чувствительности. И контрольные кадры - для 800, 400, 200 и 100 ISO.

Что за "горячая экспозиция"? А зачем так много? Мы ж хотим

Что за "горячая экспозиция"?

А зачем так много? Мы ж хотим просто недодержанный ISO 100 поднять до ISO 1600? :)

Кстати, интересное наблюдение - посмотрел тут свои тестовые

Кстати, интересное наблюдение - посмотрел тут свои тестовые равы, сделанные сегодня, в раваналайзере. В "базовом" кадре есть небольшой клиппинг в зеленом канале (видимо он резко обрывается - погода-то пасмурная и небо почти монотонно серое), а вот у кадра на -4 крайз зеленого до отметки -4 чуть-чуть недотягивает - дырка чуть больше 4 стопов

:)

Pages

Subscribe to comments_recent_new