Комментарии 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).
Если это не какая-то внутренняя разработка, то можете на нее ссылку кинуть? Хотелось бы ее потестировать на своем движке.

Как я написал движок распознавания лиц на C, который обогнал ONNX Runtime