Как стать автором
Обновить
207
0
Victoria Zhislina @vikky13

HUAWEI

Отправить сообщение

Это — тема отдельного поста. Если интересно, то вот — отличная лекция по OpenCL, SYCL and DPC++ на русском

Моя история получилась короткая, на пост из четырех частей не тянет, но мне было весело.
— Здравствуйте, Виктория Григорьевна, на связи старший сотрудник безопасности Сбербанка. Дмитрий (Фамилия).
--Здравствуйте.
— С вашего счета сегодня был совершен перевод на 7123р на имя Анатолия Барунова. Скажите, это вы сделали перевод?
— Да, я! (в реальности я не знаю никаких Анатолиев, и знаю, что такого перевода не было).
— (Пауза) А можно узнать, когда именно был сделан перевод?
— Боюсь, нет. Это будет разглашение личной информации.
— Но у нас есть информация о компрометации вашего аккаунта. А можно узнать назначение перевода данной суммы?
— Пожалуй, да. Анатолий — божественен в постели. Я очень боюсь его потерять и сразу после каждой нашей интимной встречи перевожу ему на счет определенную сумму. Поэтому и не могу сказать точное время перевода, Вы же понимаете.
— (Пауза). Скажите, а зачем вы меня обманываете?
— А откуда Вы знаете, что я вас обманываю? Неужели вы тоже спите с Анатолием???!!!

Все заявки были получены, изучены и обсуждены. В том числе и ваша.
Да, на будущее нам стОит посылать уведомление о получении. Спасибо!

Вы правы, но мы очень старались это учитывать. Под компаниями тут имеются в виду не монстры индустрии — они обычно покупают технику Intel самостоятельно и в больших количествах, а небольшие компании — не более десятка работников, у которых каждый девайс на счету. Кроме того, в числе победителей есть и индивидуалы.

По условиям в конкурсе могли участвовать не только индивидуалы, но и компании.

Я согласна, что сравнивать идею и готовое решение — не совсем справедливо. Но в идею тоже можно вложить много труда — провести исследования, очень точно и подробно описать, что и как можно сделать. Но, к сожалению, таких заявок от конкурсантов не нашлось.

В CM векторы могут иметь произвольную длину, а также существуют матрицы и поверхности. Это значительно влияет на производительность и возможности для целого ряда алгоритмов. Кроме того, в CM вся обработка — векторная, а в OpenCL это векторные фрагменты — именно о них можно думать как о векторных intinsic вставках в скалярный код.

А это он и есть. То, что приведено выше (если поменять размеры матрицы на 16х16), работает в 8 раз быстрее реализации OpenCL. C 8x8 просто никто не мерил :)

Исходников OpenCL у меня нет, но их легко найти. Исходники ICM для матрицы 8х8 — можно посмотреть в примере gaussian_blur_test из ICM пакета. Там нет абсолютно никаких хитростей — все очень просто и наивно.


  matrix<uint, 8, 8> out;
  for( int i = 0; i < height; i += 8 ) {
    read( INBUF, id * 32, i, in );
    out.row(0) = in.column(0);
    out.row(1) = in.column(1);
    out.row(2) = in.column(2);
    out.row(3) = in.column(3);
    out.row(4) = in.column(4);
    out.row(5) = in.column(5);
    out.row(6) = in.column(6);
    out.row(7) = in.column(7);
    write( OUTBUF, i * 4, id * 8, out );</source>
Задача — транспонирование матрицы :)) Но вообще — в посте описано как потратив около 10 минут времени запустить на вашей системе уже реализованный пример, например, линейного фильтра (или еще десяток варантов), увидеть скорость его работы и сравнить с самой эффективной реализацией OpenCL.
Спасибо, что нашли опечатку. Я не заметила :( Конечно же, значения не битовые, а байтовые. Поправила… И я честно пишу, что это максимальный эффект — когда происходит изменение порядка данных.
Если всё очень сильно упростить (на порядок), то да. Что мешает? Мешает архитектура OpenCL, явно созданная для скалярной работы by design. Хотя появление расширений там неизбежно, скорость нужна всем.
Я вам открою секрет. В Intel — достаточно инженеров для разных задач. Ну и еще один секрет не открою, а повторю — скопирую из текста поста — «Много лет ICM использовался внутри Intel в разработке продуктов для обработки медиа на Intel GPU»
Тут два момента, явно отмеченных в статье. Первый — OpenCL — не векторный по своей природе. Компилятор пытается его векторизовать внутри, но никакая автовекторизация по эффективности не может сравниться с ручной, которая лежит в основе C for Metal. Но главное — OpenCL работает с элементами поэлементно (хотя там и есть векторы фиксированной длины и рабочие группы, но это не сильно меняет дело), а в основе C for Metal — именно работа с группой элементов, причем, нефиксированного размера). Именно поэтому такой выигрыш именно в транспонировании — любом переупорядочивании этих элементов.
Вы задаете отличный вопрос… для тех, кто не читал этот пост. Для тех, кто читал, увы — ответ в посте есть. Честное интеловское :) К нему можно добавить, что да — производительность OpenCL постоянно улучшается, да и oneAPI виден на горизонте. C for Metal нисколько этим усилиям не противоречит.
Со стороны Intel таких планов пока нет, но всё же открыто — может, кто-то и напишет.
В первой версии статьи, безжалостно отброшенной редактором, последний абзац был такой «Даже немного жаль, что продукция Intel очень надежна и слышать любимые мелодии вам придется мягко говоря нечасто.»
Думали. Но некоторые инженеры считали, что в любой работоспособной системе обязательно должен присутствовать звук бубна, а другие — возражали. Так что пока предложение нереализуемо.
Голосовое сообщение может быть также загружено в Intel Sound Control наряду с мелодией. Дискриминации по этому признаку (голос\инструмент), конечно же, не планируется!
С предустановленными мелодиями, конечно же, все совершенно легально. А вот с пользовательскими — проблемы могут возникнуть если серверная является публичным местом, например, пивным баром. Но и в этом случае ответственность за нелицензионную музыку лежит на установившем ее пользователе, а не на компании-производителе.

Информация

В рейтинге
Не участвует
Зарегистрирована
Активность