commit | bcb6199e19d5a6320397258a8028fc5ec3459d0d | [log] [tgz] |
---|---|---|
author | Scott Todd <scotttodd@google.com> | Tue Mar 15 09:03:55 2022 -0700 |
committer | GitHub <noreply@github.com> | Tue Mar 15 09:03:55 2022 -0700 |
tree | ae0a65482ea9cdf9b28a01048b93569d9403e2f0 | |
parent | 590a852edf091ac1a06f666e44319a7e105a4a2a [diff] | |
parent | e35d00338a3ac9f8943a5f7050c632939ebe14cb [diff] |
Include most Vulkan tests in ASan build. (#8489) Progress on https://github.com/google/iree/issues/5715 and https://github.com/google/iree/issues/5716 Leaks in the Vulkan-related libraries we use were hidden behind incomplete handling of shared library loading/unloading in ASan. By disabling calls to `dlclose()` in both `iree/base/internal/dynamic_library_posix.c` and the Vulkan Loader (`libvulkan.so.1`) so those libraries remained open for ASan to reference, I was able to get useful leak reports. Those reports showed that my NVIDIA system Vulkan ICD (`libnvidia-glcore.so`) was leaking and an up to date SwiftShader (`libvk_swiftshader.so`) was _not_ leaking. This PR updates SwiftShader to a commit that doesn't leak (with our usage, anyways) and enables most of the Vulkan tests that were previously excluded from running under ASan. --- A few tests are still failing with crashes in ASan, with logs like this: ``` Tracer caught signal 11: addr=0x0 pc=0x50c558 sp=0x7fb28fdffd10 ==50923==LeakSanitizer has encountered a fatal error. ==50923==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1 ==50923==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc) ``` ([full logs here](https://source.cloud.google.com/results/invocations/a37ab871-4cab-4591-a5d6-8ad849f196e3/targets/iree%2Fgcp_ubuntu%2Fcmake%2Flinux%2Fx86-swiftshader-asan%2Fpresubmit/log)), so I'm keeping those disabled explicitly.
IREE (Intermediate Representation Execution Environment, pronounced as “eerie”) is an MLIR-based end-to-end compiler and runtime that lowers Machine Learning (ML) models to a unified IR that scales up to meet the needs of the datacenter and down to satisfy the constraints and special considerations of mobile and edge deployments.
See our website for project details, user guides, and instructions on building from source.
IREE is still in its early phase. We have settled down on the overarching infrastructure and are actively improving various software components as well as project logistics. It is still quite far from ready for everyday use and is made available without any support at the moment. With that said, we welcome any kind of feedback on any communication channels!
See our website for more information.
IREE is licensed under the terms of the Apache 2.0 License with LLVM Exceptions. See LICENSE for more information.