Pull to refresh
1
Karma
0
Rating
Максим Титов @titovmaxim

Разработчик ПО для аналитического оборудования

  • Followers 1
  • Following

Научный журналист Ася Казанцева: «Эффективные зайчики сдохнут быстрее»

Аргументация - вещь замечательная. В нашем сложном мире можно аргументированно утверждать почти все, что угодно. Это очень удобная штука, которой пользуются все высококвалифицированные продажники. Есть 100-500 факторов, влияющих на определенный процесс. Выбирают 1-2-3 и апелируют в ним. Какой вклад они дают среди всех прочих - мало кому извество. Но звучит убидительно. Например - без кальция кости становятся хрупкими. Да, не поспоришь. После определенного возраста кальций вымывается. Да. Вывод - кушайте кальций, желательно с витиманов D, что бы лучше усваивался. Логично. Но. Тесты на огромной выборке показали, что это не работает. Нужна физическая активность, иначе данный кальций не будет работать так, как задумано. Это очень простой пример, когда логичные рассуждения не приводят к желаемому результату. И тесты это подтверждают.

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

Я "over 40". Всегда старался отмечать, насколько эффективно соображаю. В молодости, слава богу не был обделен этими способностями, все давалось легко. А вот когда за 40... Ничего не изменилось, где-то даже стало лучше. Вероятнее всего тут помогает опыт, но это не точно. Главное, что при наличии заинтересованности, сокрость обработки информации и вникание в новое стала, субъективно, даже выше, чем в 20. Проблема даже в обратном, что бы остановиться и отдохнуть.

Мне кажется, все зависит от желания и тренировки. На личном примере я не вижу затормаживания в скорости соображения и обучаемости. Возможно гены. Но те негативные примеры, которые я вижу вокруг, связаны с образом жизни людей. Если 10 тел не учиться ничему новому, просто забудешь, как это делается. Независимо от физиологии.

Ускоряем на 70% игру на процессоре в 1 МГц

На том же Z80 (ZX-Spectrum, к примеру) двух стековых регистров не было. Но никто не мешал, скажем, читать через POP из памяти, а писать в фиксированный адрес ячейки, что бы без всяких ++. Да, процедуру нужно было разворачивать «руками» для каждой ячейки экрана. Благо, что их было не так много. Зато максимально быстро, на Z80 быстрее сделать было нельзя.

Цифровой рентген: прогулка по Эльбрусу

В принципе, использование исключений не ускоряет работу программы на любой архитектуре. Поэтому использовать их в критических местах не лучшая идея. А особенности конкретно Эльбрус делают этот факт еще более значимым. Более детально можно посмотреть в открытых источниках, например здесь:
www.youtube.com/watch?v=8rYfUO1x_MQ

Перед нами, как разработчиками софта, не ставилось задачи выбора платформы. Напротив, необходимо было реализовать качественный и быстрый кросплатформенный код по обработке изображений, одинаково хорошо работающий как на Эльбрус, так и на Intel (Linux + Windows). Мы эту задачу успешно решили.

Цифровой рентген: прогулка по Эльбрусу

Причины сугубо рациональные.

Другую версию OpenCV мы не собирали по причине того, что нас интересовала именно EML. Новые фичи OpenCV, наверное, хороши, но для нас пока не представляют интереса. Быстродействие EML представляют намного большую ценность даже при ограниченности функционала версии 3.2 (с которым мы пока не столкнулись).

При старте проекта нам было важно, что бы разрабатываемый с нуля софт стабильно функционировал на новой для нас платформе. В этой ситуации делать свои сборки Qt мы посчитали нерациональным и даже рискованным. Версия 5.11 нас в достаточной степени устраивает. Имеющиеся баги мы успешно обошли, в остальном чистой Qt пользуемся немного, как я писал с статье. При этом есть понимание, что в ближайшем будущем появятся более актуальные официальные сборки.

Цифровой рентген: прогулка по Эльбрусу

Мы тоже долго ломали голову, как это сделать. На Vulkan, CUDA, OpenCL – просто. На OpenGL мы пришли к тому, что передаем изображение в вертексный шейдер как входные VertexAttibutes. И далее, в зависимости от яркости рендерим в нужную точку одномерной текстуры с соответствующим блендингом. В принципе, работает хорошо. Но количество ядер, выделенных на вертексный шейдер сильно меньше, чем на фрагментный. Поэтому еще и mipmap заранее используем.

Там достаточно много тонкостей было, непросто получилось.

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity