summaryrefslogtreecommitdiffstats
path: root/build/scripts
Commit message (Collapse)AuthorAgeFilesLines
* up minSdkVersion to 26kmartynkov2024-06-172-2/+2
| | | | 5ebefdb42da5a6118db1c0f98f25231c63fef96e
* Fix java command file in pluginv-korovin2024-06-133-11/+54
| | | | e43ef305d767fb94adc0f4f6e3901156fc3b7939
* [build] link_exe: Add cupti to CUDA_LIBRARIESdeshevoy2024-06-131-0/+2
| | | | bddf00bb1bd387adf17502c2af8be1e265c8f5a8
* Fix commands on Windowsspreis2024-06-121-5/+24
| | | | | In order to get stable command regardless of platform we shall use linux way of representing commands everywhere. Happily this almost always works on Windows except direct file presence checks like in compile_cuda.py 1412fdabc2fcf1732cd2578e0c6ffe91b220aa2e
* feat(conf+builder): build without contrib/typescriptzaverden2024-06-111-2/+4
| | | | 89c8f9767a1ef610f9ee050e1a5da5728bba02d7
* [build] link_exe: Add NPP libs to CUDA_LIBRARIESdeshevoy2024-06-091-1/+14
| | | | 4ef12dd52c1d38cd7a1018ec1bc40800644ea775
* Add renaming py2-proto-symbols to all needed linking scriptsmikhnenko2024-05-295-87/+124
| | | | b7ff75f77e1a1818aac0062ec06948dad92af1bc
* revert changesv-korovin2024-05-281-35/+9
| | | | acd26311852d82fb81a5e57f7b5e5c67f9d89f64
* 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
|