AMV News
Музыкальные аниме клипы
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход  

CUDA в Adobe (Premiere и After Effects) CS5
На страницу Пред.  1, 2
 
Начать новую тему   Ответить на тему    Список форумов AMV News -> Создание AMV
Предыдущая тема :: Следующая тема  
Автор Сообщение
vivan



Пол: Пол:Муж

Постоянный гость
Рега: 20.03.2009
Сообщения: 460
Откуда: Спб
Страна: Россия

СообщениеДобавлено: Пт Сен 23, 2011 9:01 pm    Заголовок сообщения: Ответить с цитатой

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

W_aZZa
да, разрешены. Но каждый условный переход в большинстве случаев серьезно снижает производительность, приближая ее к скорости wave front'а / warp'а т.е. до 32/64 раз медленнее. Это одна из самых серьезных проблем, которая весьма затрудняет реализацию алгоритмов, отличных от элементарных.
А мультипоточность - это самая малая из проблем. Сейчас все ресорсоемкие приложение поддерживают дофига потоков. Там, например, coreavc, x264 и 7zip поддерживают неограниченное число потоков, но реализации их (либо полноценных аналогов) полностью полагающихся на GPGPU нет и не будет...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Aggressor



Пол: Пол:Муж

Модератор
Рега: 07.03.2007
Сообщения: 2343
Откуда: Киев

СообщениеДобавлено: Пт Сен 23, 2011 10:38 pm    Заголовок сообщения: Ответить с цитатой

vivan
Напрасно не смущает. For...next ведь тот же if...then, а ты говорил, что ифы ложат видяху на лопатки. ) Более простым языком: внутри for выполняется точно такой же условный переход, как и if.
Кроме того, твой метод абсолютно однопоточный и распараллелить его в принципе не получится. Фейл.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vivan



Пол: Пол:Муж

Постоянный гость
Рега: 20.03.2009
Сообщения: 460
Откуда: Спб
Страна: Россия

СообщениеДобавлено: Пт Сен 23, 2011 10:53 pm    Заголовок сообщения: Ответить с цитатой

Ох... Какое есть ветвление в цикле? Либо цикл закончился, либо нет. Все.

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

А при любом анализе ветки будут разные (иначе в анализе смысла вообще нет).

Aggressor писал(а):
Кроме того, твой метод абсолютно однопоточный и распараллелить его в принципе не получится. Фейл.
Баблсорт - да, ужас. Это единственная сортировка в мире?)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Aggressor



Пол: Пол:Муж

Модератор
Рега: 07.03.2007
Сообщения: 2343
Откуда: Киев

СообщениеДобавлено: Пт Сен 23, 2011 11:18 pm    Заголовок сообщения: Ответить с цитатой

vivan писал(а):
Какое есть ветвление в цикле? Либо цикл закончился, либо нет. Все.
А что такое ветвление в принципе? Либо то, либо другое, всё.

vivan писал(а):
Это единственная сортировка в мире?)
Так ты уж определись: сортировка без условных переходов или многопоточная. Wink Всё не так просто!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
vivan



Пол: Пол:Муж

Постоянный гость
Рега: 20.03.2009
Сообщения: 460
Откуда: Спб
Страна: Россия

СообщениеДобавлено: Сб Сен 24, 2011 9:50 am    Заголовок сообщения: Ответить с цитатой

Aggressor писал(а):
vivan писал(а):
Какое есть ветвление в цикле? Либо цикл закончился, либо нет. Все.
А что такое ветвление в принципе? Либо то, либо другое, всё.
Нет.
При цикле, если он не закончился - то абсолютно идентичный цикл выполняется еще раз, в каждом потоке одновременно. Если закончился - поток проставает.
При ветвлении - сначала часть потоков будет выполнять одну ветку, а другие простаивать (т.к. ветки разные), потом - другую.
Если таких веток будет много, одна в другой - то будет очень весело.

Aggressor писал(а):
vivan писал(а):
Это единственная сортировка в мире?)
Так ты уж определись: сортировка без условных переходов или многопоточная. Wink Всё не так просто!
Ок.
1) Берем массив из n натуральных чисел (для других просто значения будут другими, менее очевидными). Разбиваем его на квадрат со стороной k = √n (округленное вверх), лишнее заполняем нулями.
2) Каждый из k потоков выполняет 1 проход баблсорта (т.е. k-1 итераций цикла, в котором максимальный из двух соседних элементов получается с большим номером) для своей строки
3) -//- для своего столбца.
Таким образом самый большой элемент оказывается в углу, с номером k²-1.
4) Пихаем его последним элементом в новый массив (который будет результатом). А в старом массиве заменяем его на 0.
5) Выполнем 3, 4, 5 n раз.

Вот тебе модификация баблсорта, которая работает за те же O(n²), но в √n потоков.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов AMV News -> Создание AMV Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме