Обновить

Комментарии 11

Хотел запустить в браузере потыкать, но видимо чего то не хватает...
Failed to load /weights.bin

Этот файл в разделе релиза скачивается

браузере еще недоработал(

Омг... Ничего не понятно, но очень интересно!
Только один вопрос: а почему "чистый C"?

Что такого понадобилось из С, чего нет в С++?

Чистый C не потому что в C++ чего-то нет, а потому что в C нет лишнего)

Во-первых: очень крутая статья, я бы "ниасилил".

Нуууу, я всегда думал, что в С++ тоже нет ничего лишнего. В том смысле, что если не писать в main.cpp что-то вроде std::map или std::unordered_map, то и в итоговый код оно не попадёт. Зато можно написать class MySuperAlgorithm {}; и это не будет стоить ничего. То есть, последний пример статьи можно переписать как-то так:

class OOFaceX {
 public:
  FaceX() { fx_ = facex_init("edgeface_xs_fp32.bin", NULL); }
  ~FaceX() { facex_free(fx_); }

  void embed() { facex_embed(fx_, face, embedding); }
  float compare(? emb_a, ? emb_b) {
    return facex_similarity(emb_a, emb_b);
  }

 private:
  FaceX* fx_ = nullptr;
  float face_[112 * 112 * 3];
  float embedding_[512];
};

OOFaceX t;
t.embed();
float sim = t.compare(emb_a, emb_b);

После компиляции должен получиться тот же самый бинарь, что и из чистого Си, зато уже не нужно следить за ресурсами. (А при необходимости после этого можно будет попробовать взять что-то из STL, а-ля vector, для случаев, когда нужно просто хранить что-то не слишком важное).
ИМХО, да.

Добрый день!
Скажите пожалуйста, а каков общий алгоритм оптимизации любой программы?
Может быть, вы знаете книги, в которых его можно посмотреть?

Profile-Guided Optimization (PGO)

Извините, что влез.
Вот книжка: Крис Касперски, Техника оптимизации программ.

Общий алгоритм оптимизации, ИМХО, такой:

  • запустить программу под профайлером, посмотреть, какие участки выполняются дольше всего;

  • оптимизировать найденные участки, сначала алгоритмически, затем низкоуровневым программированием;

  • повторять до получения полного удовлетворения.

Здравствуйте. А это какая-то квантизированная модель? (Иначе к чему тут AVX-512VNNI).

Если это не какая-то внутренняя разработка, то можете на нее ссылку кинуть? Хотелось бы ее потестировать на своем движке.

Да, модель квантизована в INT8

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации