summaryrefslogtreecommitdiffstats
path: root/build/scripts
Commit message (Collapse)AuthorAgeFilesLines
...
* feat(local fetcher): http and https URIs are under common http schemazaverden2024-05-281-0/+95
| | | | | Both `http:` and `https:` are recognized as `http` resource type deda06fcadd25ab57d1b64d39c17349a33c1a55e
* testv-korovin2024-05-231-9/+35
| | | | d394e1d4a37d8c9b93bc4c1feab8362a3488f41e
* YT-21446: Remove OS part of python UDFs from arcadiampereskokova2024-05-211-4/+3
| | | | d587f95edf5636edfae6672d36f57c8a15f5f3e0
* Fix patching cpp protodimdim112024-05-171-2/+2
| | | | | Fix patching cpp proto af01597c047856b865c6a4e9933cfeacb0a2f39b
* [build/scripts/link_exe.py] Do not output warnings when creating `.a` fileszhukoff-pavel2024-05-161-1/+1
| | | | d9beae52f9300e65eddec8c2b865f132ea6b5833
* apply clang-format to build/scripts/c_templates/svn_interface.cegovol2024-05-161-8/+6
| | | | 81235399e4c6e917bcabe929f3897deeb2232bbc
* Use lld-link for target-platform windows once againmikhnenko2024-05-132-0/+32
| | | | da1125f4b9b5aebe87b610dd1e1a61864ba500cf
* Try fix warnings.nogert2024-05-131-1/+1
| | | | cf4738908ddc23b6c6a3e669f225bd15999a1404
* Add encoding utf-8 for reading/writing filesdimdim112024-04-241-3/+3
| | | | | Add encoding utf-8 for reading/writing files 12a3ca5bf28ac486a2897fd6cdf155b0bf049483
* Remove final in cpp pb.h/cc by outputs listdimdim112024-04-231-0/+43
| | | | | Remove final in cpp pb.h/cc by outputs list 1307ef1d33bab92f478e7a4d213c08bf6691ebd5
* Revert commit rXXXXXX, Use lld-link for target-platform windows, fix arc ↵mikhnenko2024-04-222-32/+0
| | | | | | native build 0bd1ab2bb753fb9458cc5f295e94e24cf1115055
* YT-21446: Support py udfs generator is os ydbmpereskokova2024-04-221-4/+6
| | | | ab1a950f25a9a5f4a9ca38655f443ff23cece827
* Use lld-link for target-platform windowsmikhnenko2024-04-182-0/+32
| | | | ab842fb2190e76244be2cf4d1b0e266ef141a5a1
* replace `OWNER` with `SUBSCRIBER` for build/thevery2024-04-102-2/+2
| | | | | | Привет! В рамках [задачи по наведению порядка в Аркадии](https://clubs.at.yandex-team.ru/arcadia/30094) заменяем OWNER на SUBSCRIBER в ya.make, чтобы в будущем переключить ревью на a.yaml. Этот пуллреквест приносит чисто технические изменения, правила и уведомления про ревью не меняются. 66643ef2ea3057cb2bdcd789ca7302eceeb936b1
* 5eeabf6b50300e7e8d5a2089deaf9946fc3e9cf5snermolaev2024-04-031-7/+2
|
* Update golang to 1.22.1hiddenpath2024-04-031-11/+1
| | | | 2967d19c907adf59101a1f47b4208bd0b04a6186
* Re-enable separation of protobufs for Python 2 and Python 3spreis2024-03-291-0/+88
| | | | | | | | Это откат коммита https://a.yandex-team.ru/arcadia/commit/rXXXXXX И соответственно возврат коммитов https://a.yandex-team.ru/arcadia/commit/rXXXXXX и https://a.yandex-team.ru/arcadia/commit/rXXXXXX Починка причины отката влилась здесь: https://a.yandex-team.ru/arcadia/commit/rXXXXXX ae529e54d3ef7992b0e9f152373bc300061c1293
* up minSdkVersion to 23kmartynkov2024-03-292-2/+2
| | | | 0b45139af384e67f15bbca80dd0f2d2685327c7f
* py2/py3snermolaev2024-03-291-1/+2
| | | | 480434cd022569bd885a5446b39f15db14f8a6fe
* Compatibility with Python < 3.9 ↵akhropov2024-03-281-1/+2
| | | | | | (https://docs.python.org/3.9/whatsnew/3.9.html#type-hinting-generics-in-standard-collections).. a7fa2700711581dad0944aa9a7441af03275ec23
* Revertcommitsspreis2024-03-281-88/+0
| | | | | | | | | | | | | | Эта история про второй питон подразнесла нам графогенерацию . Нам придется этот коммит откатить. Суть проблемы в том, что генерация для 2го и 3го раньше была одной и той же командой. Ты сделал так, что команда стала разной, но аутпут этих двух команд одинаковый. Имя результата команды является ключом и сейчас берётся какая-то рандомная команда из двух. При этом команда влияет на UID и все UIDы питонячей протогенерации мигают. От фатальных проблем нас спасает только то, что protobuf-ы на самом деле одинаковые. И даже это не факт - сейчас ты патчишь какие-то рандомные либы включая таковые для 3го питона. Мы тут конечно редиски - мы в целом контролируем клэши аутпутов, но не в мультимодулях - там часто бывает что одна и та же команда оказывается в нескольких вариантах мультимодуля (потому что оно по дефолту сейчас так себя ведёт). Мы хотим это зачинить (сделать отдельный подмодуль под кодген и отселить всякие RUN_PROGRAM туда) - но это много работы и мы не успели. План такой: 1. мы откатываем твой фикс 2. отдельно стабилизируем раздельные команды генерации для 2го и 3го питона 3. накатываем обратно отревеченные тут правки. 916a5456c4e901ab2cda0841b4167e16397e83c4
* Add vanilla_protobuf attribute and logic in cmake generator (patch by python)dimdim112024-03-281-0/+46
| | | | | Add vanilla_protobuf attribute and logic in cmake generator 0801b280e74126103f91b5cccf0fb16bdfddc492
* 2594c64e637fd7028000c2f6e9c69b8554b86a5bpg2024-03-271-0/+88
|
* Remove fix_cmd for JDK8pazus2024-03-241-43/+1
| | | | dd9870e7f209af88b971acb4ccbefd00ba3b2d4c
* Add command file to compile_javav-korovin2024-03-142-2/+13
| | | | 30830fa535b50fdecf6e211f6b7e27d9f5b41c96
* up compileVersion to 33kmartynkov2024-03-132-6/+6
| | | | 9c50861068e92bb2909a62e69ca0b4f3b545a084
* Comply to SBOM scheme for global propssvidyuk2024-03-111-1/+2
| | | | 1e0249ff477caac2635b5972a66ff9ebeda76314
* Added function to rename .ctors sections into .init_array in cuda librariestoshiksvg2024-03-071-30/+61
| | | | | | | Добавил функцию, чтобы все библиотеки из CUDA пакетов, которые статически линкуются, гарантировано имели символы в секции `.array_init`, а не в `.ctors`, как происходит сейчас. В противном случае некоторые библиотеки не работают в случае статической линковки (например, `nvrtc`). 1362e42f94015ba083431caa04d7ae436fd6bf99
* Add module sources path in arcadia to SBOMsvidyuk2024-02-291-5/+6
| | | | b602177461457152031e77d2e8dcb91894576c10
* Fix long command for move.py for windowsv-korovin2024-02-271-3/+12
| | | | c9a1d423397a49cb5e1c15a278be8e22e8ffc18d
* SBOM embedding machinery with initial testssvidyuk2024-02-261-0/+66
| | | | | Sbom is turned off by default in this PR and is going to be enabled by separate commit 9e873d00cc976a9ad58bd47615de2c1911bb77a5
* [build/scripts/cat.py] Fixed py23 compatprettyboy2024-02-211-1/+5
| | | | | Фикс для https://a.yandex-team.ru/review/5393734/details#comment--6406734 dec6fcab69f58174dec7b4bf87942e894196f77e
* get rid of sixsnermolaev2024-02-201-8/+4
| | | | faeb2c69960c197db9fc9c5d0696d6dc0ce3d74a
* Fix recursive_library after rXXXXXX.akhropov2024-02-161-1/+1
| | | | f4e34ac010d78d384ad18819db18ffa2e20967b9
* Yexport testsennikovmv2024-02-161-3/+3
| | | | 42477b361df98bfa4ad9fa98d79ee8c6e27a78ef
* Fix in regexps for 'ar' versions - use raw strings. Curiously enough they ↵akhropov2024-02-131-2/+2
| | | | worked correctly either way but the old version produces a warning on python 3.12
* fix namespace for DOCS_SRCSsnermolaev2024-02-091-17/+22
|
* Support nonstandard 'ar' versionsakhropov2024-02-041-2/+3
|
* Fix bug after rXXXXXXkickbutt2024-02-031-14/+19
|
* Bump CUDA -> 11.4 and cuDNN -> 8.0.5kickbutt2024-02-021-22/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ~~большой~~ PR по переключению дефолтной версии CUDA с cuDNN в Аркадии Обновляем CUDA: 10.1 -> 11.4 Обновляем cuDNN: 7.6.5 -> 8.0.5 Помимо простого обновления версий, данный PR содержит следующее: * От перехода на CUDA 11.4 честно сломался только [один проект](https://a.yandex-team.ru/arcadia/cv/imgclassifiers/danet/backend/gpu_cuda?rev=rXXXXXX), поэтому просто там правим * Где-то поменялись тесты на объём потребляемой памяти, поэтому их просто переканонизируем * По поводу удаления таргетов из clang_prev_targets: - `ld.lld` из поставки clang14 не справляется с линковкой - не может найти символы в попруненных либах, хотя они там есть - но можно просто переключиться на автосборку, потому что те проблемы [совместимости cuDNN и clang](https://st.yandex-team.ru/#655b977f30316b33e3a5ec87), для которых gpu-шные таргеты добавляли в clang_prev_targets, в автосборке уже не существуют * По поводу удаления таргетов из cuda11_targets - теперь cuda11_targets отличается от автосборки версией TensorRT (5 в автосборке vs 7 в cuda11) и режимом сборки (relwithdebinfo в автосборке vs release в cuda11), но есть два момента - те, таргеты, которые я удаляю, не зависят от TensorRT, поэтому их не имеет смысла их тестить и в автосборке, и в cuda11 (про таргет `ads/quality/sis/tests/cuda11_arch80` мне сейчас ничего не известно; если что - выпилим его отдельным таргетом) - на самом деле дублирование даже вредно - в `dict/mt/daemon/tests/gpu` есть тест на потребление памяти gpu, который имеет разные результаты в зависимости от release vs relwithdebinfo, поэтому для этого таргета мы в принципе не можем собираться одновременно и в автосборке, и в cuda11 По поводу дефолтной автосборки в принципе пришлось сделать четыре приседания: * пишем кастомный скрипт для линкера: - идея скрипта: переставляем большую секцию с gpu-шным кодом (`.nv_fatbin`) после `.bss` (самая дальняя секция, куда можно ожидать ссылки из кода бинаря), чтобы было меньше шансов нарваться на проблемы с relocation overflow в (`.bss`) - замечание: в самом скрипте используем в нём только `INSERT AFTER`, чтобы [ld.ldd и дальше применял свои дефолтные правила для остальной программы](https://releases.llvm.org/16.0.0/tools/lld/docs/ELF/linker_script.html#sections-command) - сделал замеры перфа генезисного инференса через `ml/zeliboba/libs/ynmt_lm/translate/bin` на том сценарии, который оказался под рукой - не заметил каких-то изменений * добавляем nvcc-флаг `-Xfatbin=-compress-all`, чтобы наш fatbin сжимался и занимал меньше пространства в бинаре (далее он будет разжиматься на старте программы, так что оверхеда быть не должно) - сделал замеры перфа генезисного инференса через `ml/zeliboba/libs/ynmt_lm/translate/bin` на том сценарии, который оказался под рукой - не заметил каких-то изменений * добавляем флаг линкера `--no-relax`, так как опция "relaxation of relocatable symbols" (когда мы load в регистр + jump по адресу в регистре заменяем на относительный jump) уменьшает допустимый диапазон оффсетов, которые мы можем кодировать, что также приводит к relocation overflow - больше информации можно найти в https://maskray.me/blog/2023-05-14-relocation-overflow-and-code-models - сделал замеры перфа генезисного инференса через `ml/zeliboba/libs/ynmt_lm/translate/bin` на том сценарии, который оказался под рукой - не заметил каких-то изменений * ещё чуть более гранулярно выпиливаем лобзиком архитектуры из либ в поставках CUDA / cuDNN - в категории "ассемблерный код" (`compute_XX`) оставляем только для последней версии поддерживаемой архитектуры (то есть `compute_86`), так как на новых GPU-шках мы будем JIT-компилироваться из него, а на старых GPU-шках мы возьмём готовый машинный код для них Эти идеи были в основном взяты из следующих источников: - https://maskray.me/blog/2021-07-04-sections-and-overwrite-sections#insert-before-and-insert-after и https://discourse.llvm.org/t/lld-relocation-overflows-and-nv-fatbin/58889 (про перемещение `.nv_fatbin`) - https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#nvprune (про `nvprune`) - https://maskray.me/blog/2023-05-14-relocation-overflow-and-code-models#relocation-overflow (`-Wl,--no-relax`) - https://discourse.llvm.org/t/lld-relocation-overflows-and-nv-fatbin/58889/6 + https://github.com/pytorch/pytorch/pull/43074/files#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aR360 (про `-Xfatbin=-compress-all`) Дополнительные комментарии: - можно дополнительно не выпиливать ненужные архитектуры, но этот флаг дополнительно уменьшает размеры бинарей (например, таргет `ml/zeliboba/libs/ynmt_lm/translate/bin`уменьшается на 120 MiB, что составляет примерно 5% от размера бинаря) - кастомный скрипт для линкера позволяет не развлекаться с ещё более гранулярным выпиливанием архитектур (например, для таргетов `TENSORFLOW_WITH_CUDA`) Оставшийся технический долг, который будет делать в других PRах * донести функциональность из `link_exe.py` в `link_dyn_lib.py` * перейти на TensorRT 7 * выпилить cuda11_targets * выпилить флаг `TENSORFLOW_WITH_CUDA` в пользу `CUDA_REQUIRED` и удалить tensorflow_with_cuda_targets (??) * поднять версию стандарта c++ для гпушного кода с 14 до 17
* Fix bugs in CUDA libs pruningkickbutt2024-01-291-2/+7
| | | | | | Чиним две проблемы, обнаруженные опытным путём: * во-первых, cudart не содержит никакого девайсного кода, поэтому её не имеет смысла прунить * во-вторых, нам для линковки могут передать несуществующие директории, поэтому делаем код проверок чуть более многословным
* Fix separator in CUDA_ARCHITECTURESkickbutt2024-01-231-2/+3
|
* Use `CUDA_ARCHITECTURES` flag to prune architectureskickbutt2024-01-221-0/+56
| | | | | | | | | | | | | | | | | * Добавляю переменную `CUDA_ARCHITECTURES`, в которых указываю, для каких архитектур оставлять device-код в гпушных либах CUDA / cuDNN * Выставляю для неё разумные дефолты для тех архитектур, которые потенциально страдают от избыточного размера кода (сейчас это 11.4, потом можно будет расширить для других архитектур) * Пробрасываю эту переменную и путь до бинарника `nvprune` в скрипт линковки * Ищу и пруню гпушные либы Как проверить, что работает: * например, успешно собирается `ya make --build=release -DTENSORFLOW_WITH_CUDA -DCUDA_VERSION=11.4 -DCUDNN_VERSION=8.0.5 -DCUDA_ARCHITECTURES=sm_70 yweb/webdaemons/ocrdaemon` (с дефолтным `-DCUDA_ARCHITECTURES` падает по relocation overflow) * елси хочется посмотреть на изменение размеров, то можно собрать `ya make ml/zeliboba/libs/ynmt_lm/score/bin/ --build=relwithdebinfo -DCUDA_VERSION=11.4 -DCUDNN_VERSION=8.0.5` один раз с дефолтным значением, другой раз с `-DCUDA_ARCHITECTURES=sm_70,sm_80,compute_80` - размер бинаря уменьшится Особенности: * ~~Сейчас дефолт для каждой новой версии куды содержит в себе тупо все поддерживаемые архитектуры. Имеет смысл его порезать до чего-то более разумного~~ - порезал * Обход аргументов в обратном порядке сделан для того, чтобы эмулировать поведение линкера (для линкера важен порядок пробрасывания между либами для линковки и директориями, в которых их нужно искать) * ~~Сейчас артефакты прунинга кладутся рядом с оригинальными либами; возможно, стоит их складывать в отдельное место в build-директории, но я пока не разобрался как это делать; буду рад, если кто-то подскажет~~ уже неактуально - кладу в build_root * nvprune имеет свойство мусорить варнингом в stderr, когда прунит `libcudart_static.a` (это норма - там нет кода, который можно было бы попрунить); как вариант можно закостылить и не прунить `libcudart_static.a`, но я открыт к предложениям
* Library import 8 (#1074)AlexSm2024-01-182-9/+11
| | | | | * Library import 8 * Add contrib/libs/cxxsupp/libcxx/include/__verbose_abort
* Library import 7 (#937)AlexSm2024-01-114-4/+214
|
* Library import 5, delete go dependencies (#832)AlexSm2024-01-041-1/+1
| | | | | * Library import 5, delete go dependencies * Fix yt client
* Import libs 1 (#590)AlexSm2023-12-212-28/+0
| | | | | | | * Import libs 1 * Add new file without extension * Add file missed in export config
* (no commit message)pg2023-12-151-0/+3
|
* External build system generator release 65robot-ya-builder2023-12-052-29/+37
| | | | Update tools: yexport, os-yexport
* Revert commit rXXXXXX, External build system generator release 64snermolaev2023-12-012-37/+29
|