Russian Qt Forum
Май 05, 2024, 23:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 15
31  Qt / Вопросы новичков / Re: Как вызываются деструкторы : Апрель 20, 2021, 17:37
В те времена Борладн Билдер был силен (тоже хакнутый).
32  Qt / Работа с сетью / Re: Финансовая благодарность за правильный ответ: ошибка при чтении порта по сети : Апрель 19, 2021, 21:06
Может не только разбить, но и склеить несколько мелких.
Я использовал заголовок в виде 2-х int содержащих длину пакета (2 раза одно и то жезначение,что то типа контрольной суммы), так была гарантия и понимание, где пакеты разделяются.
33  Программирование / С/C++ / Re: Ошибка компиляции cannot find -lGL : Апрель 18, 2021, 23:05
mesagl-dev пакет поставить или как он там в федоре называется
34  Qt / Работа с сетью / Re: Финансовая благодарность за правильный ответ: ошибка при чтении порта по сети : Апрель 10, 2021, 21:57
Перед чтением, проверить сколько данных доступно в сокете и считывать этот доступный объем.
35  Qt / Работа с сетью / Re: Финансовая благодарность за правильный ответ: ошибка при чтении порта по сети : Апрель 10, 2021, 17:48
BUF_SIZE == FRAME_SIZE ?
36  Qt / Многопоточное программирование, процессы / Re: нейронная сеть и потоки : Март 25, 2021, 13:17
Вот это не подойдет? https://cloud.google.com/tpu/
37  Qt / Многопоточное программирование, процессы / Re: Не масштабится :-( : Март 11, 2021, 10:13
Профайлер показывает что да, все нитки задействованы, но в основном стоят на барьере.
Смысл разбиения - убрать барьер, т.е общие данные, каждый поток крутит исключительно свои данные.
Интересно, можно больше подробностей?
Крутил несколько млн итераций на ОМП на 8 ядрах, первые несколько секунд все 8 работают, потом по одному отключаются (на каждом ядре по очереди заканчивается данные) и последнее ядро свой кусок очень долго крутит. Может я что то не правильно делал, но это поведение мне не понравилось.
38  Qt / Многопоточное программирование, процессы / Re: Не масштабится :-( : Март 10, 2021, 17:34
Пожалуйста, прочтите стартовый пост.
Из первого поста не сильно понятно как было сделано распараллеливание.
Хотя бы псевдокод посмотреть, с теми локами и конкурентным доступом к общим объектам.
PS: OMP параллелит далеко не всегда адекватно.
39  Qt / Многопоточное программирование, процессы / Re: Не масштабится :-( : Март 10, 2021, 11:37
Код:
58% съедается на цикле.
Я и предлагаю этот цикл распаралеллить на все 4 ядра. Каждое посчитает свою 1/4 итераций. При 4-х ядрах не в 4 конечно, но раза в 2 как минимум должен быть прирост.
И после окончания потоков слить полученные 4 результата в один вектор, который и запулить на ГПУ.
40  Qt / Многопоточное программирование, процессы / Re: Не масштабится :-( : Март 09, 2021, 13:51
Я имел ввиду не шарить один вектор на 4 потока/ядра, а каждый поток делает свой локальный вектор, и его посылает на GPU, или куда там еще.
Шарить надо контекст, просто так посылать из др нитки (не главной где контекст создан) = отлуп/ошибка. Ну и шансов на ускорение немного, ведь N ниток льют "в одну дырочку". Вообще мне кажется неверным пытаться в данном случае что-то делать "руками", здесь явно нужна "современная технология" (о которых так любят говорить Улыбающийся )
Затык, я так понимаю в расчетах, а не в "дырочке".

Код:
std::vector<Vec3> CPolySDS::CalcVerNormals( const std::vector<Vec3> & pos, size_t startIndx, size_t endIndx) const
{
std::vector<Vec3> dst(pos.size());
 
for (size_t i = startIndx; i < endIndx; i += mNumVerPerFace)
......
}

// На каждом ядре запустить
CalcVerNormals(pos, 0, mNorIndex.size() / 4);
CalcVerNormals(pos, (mNorIndex.size() / 4) + 1 , (mNorIndex.size() / 4) * 2);
// и т.д.
41  Qt / Многопоточное программирование, процессы / Re: Не масштабится :-( : Март 09, 2021, 11:12
Я имел ввиду не шарить один вектор на 4 потока/ядра, а каждый поток делает свой локальный вектор, и его посылает на GPU, или куда там еще.
42  Qt / Многопоточное программирование, процессы / Re: Не масштабится :-( : Март 08, 2021, 17:23
Обязательно ли посылать полный вектор dst на видеокарту?
Может разделить по ядрам и каждое ядро сформирует и отправит свой кусок вектора?
Ещё неплохо было бы подумать насчёт оптимизации количества итераций?
По опыту, могу сказать, что программная оптимизация не даёт вау-эффекта, а оптимизация на уровне бизнес логики может в десятки тысяч раз ускорить.
43  Программирование / С/C++ / Re: Итераторы : Февраль 01, 2021, 09:20
Объявление template означает что можем подавать что угодно, во всяком случае - многое.
Нет template говорит о том, что обработка переданных аргументов будет одинакова для разных типов.
А внутренняя реализация обработки зависит от разработчика.
Чем сильнее различается АПИ аргументов, тем больше будет геморроя при реализации.
44  Программирование / С/C++ / Re: Итераторы : Январь 29, 2021, 17:34
https://en.cppreference.com/w/cpp/types/add_pointer
Опять не?
45  Программирование / С/C++ / Re: Итераторы : Январь 29, 2021, 13:14
Касательно начала темы, там только 2 типа, CData и CData*
отделить одно от другого можно через std::is_pointer
так же можно сравнить с нужным типом через std::is_same
Страниц: 1 2 [3] 4 5 ... 15

Страница сгенерирована за 0.056 секунд. Запросов: 23.