Skip to content

Commit

Permalink
add E2E Test windows
Browse files Browse the repository at this point in the history
  • Loading branch information
makslevental committed Aug 22, 2024
1 parent 028d4bd commit 25b05a5
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 17 deletions.
42 changes: 41 additions & 1 deletion .github/workflows/ci-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
- name: Setup Cpp
uses: aminya/setup-cpp@v1
with:
compiler: msvc
compiler: llvm
vcvarsall: true
cmake: true
ninja: true
Expand Down Expand Up @@ -104,3 +104,43 @@ jobs:
with:
path: ${{ env.CACHE_DIR }}
key: windows-build-test-cpp-asserts-v1-${{ github.sha }}-${{ github.event.repository.updated_at }}

test_windows:
name: E2E Test windows
runs-on: mlevental-win11-pro
needs: build_and_ctest
strategy:
fail-fast: true
env:
XILINXD_LICENSE_FILE: /home/svcnod/Xilinx.lic
steps:
- name: "Checking out repository" # for test scripts
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0
with:
submodules: false # not required for testbench

- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: windows_x86_64_release_packages

- name: Extract artifact
run: |
mkdir iree-install
tar -xf iree-dist-windows.tar -C iree-install
bash build_tools/download_peano.sh
- name: Create venv and install dependencies
run: |
python -m venv .venv
source .venv/Scripts/activate
pip install -r tests/matmul/requirements.txt
- name : E2E comparison of AIE to llvm-cpu
run: |
source .venv/Scripts/activate
python build_tools/ci/cpu_comparison/run_test.py \
/c/test_aie_vs_cpu \
$PWD/iree-install \
$PWD/llvm-aie \
/c/Users/maksim/dev_projects/XRT-MCDM/build/WRelease/xilinx/xrt -v
13 changes: 6 additions & 7 deletions cmake/iree_aie_xrt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -185,10 +185,9 @@ foreach(_core_lib IN LISTS _core_libs)
$<$<PLATFORM_ID:Windows>:/EHsc /GR>)
target_link_libraries(${_core_lib} PUBLIC $<BUILD_LOCAL_INTERFACE:${IREE_AIE_BOOST_LIBS}>)
endforeach()
if (WIN32)
install(
TARGETS xrt_coreutil
EXPORT IREEExported-Runtime
COMPONENT IREETools-Runtime
LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()

install(
TARGETS xrt_coreutil
EXPORT IREEExported-Runtime
COMPONENT IREETools-Runtime
LIBRARY DESTINATION ${CMAKE_INSTALL_BINDIR})
18 changes: 10 additions & 8 deletions compiler/plugins/target/AMD-AIE/iree-amd-aie/Target/XCLBinGen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
#include <random>
#include <regex>
#include <sstream>
// ReSharper disable once CppUnusedIncludeDirective
#include <fstream>
#include <unordered_map>

#include "AMDAIETargets.h"
Expand Down Expand Up @@ -317,7 +319,7 @@ LogicalResult runTool(
program = program_ + ".exe";
}
#else
program = programs_;
program = program_;
#endif // _WIN32
if (verbose) {
llvm::outs() << "\nRun: ";
Expand Down Expand Up @@ -351,16 +353,16 @@ LogicalResult runTool(
}
}

SmallVector<std::optional<StringRef>> redirects;
#ifdef _WIN32
redirects = {{}, {}, {}};
std::optional<ArrayRef<StringRef>> envSmallVec = std::nullopt;
#else
std::string temporaryPathStr =
std::string(temporaryPath.begin(), temporaryPath.size());
StringRef temporaryPathRef(temporaryPathStr);
llvm::SmallVector<llvm::StringRef> envSmallVec;
if (env) envSmallVec.append(env->begin(), env->end());

SmallVector<std::optional<StringRef>> redirects;
#ifdef _WIN32
redirects = {{}, {}, {}};
#else
auto tp = std::optional<StringRef>(temporaryPathRef);
redirects = {tp, tp, tp};
#endif
Expand All @@ -369,7 +371,7 @@ LogicalResult runTool(
std::string errMsg;
sys::ProcessStatistics stats;
std::optional<sys::ProcessStatistics> optStats(stats);
int result = sys::ExecuteAndWait(program, pArgs, std::nullopt,
int result = sys::ExecuteAndWait(program, pArgs, envSmallVec,
/* redirects */ redirects,
/*SecondsToWait*/ 10, /*MemoryLimit*/ 0,
&errMsg, &executionFailed, &optStats);
Expand Down Expand Up @@ -1091,7 +1093,7 @@ static LogicalResult generateUnifiedObject(
}

llvm::LLVMContext llvmContext;
auto llvmModule = translateModuleToLLVMIR(moduleOpcopy, llvmContext);
auto llvmModule = translateModuleToLLVMIR(moduleOpCopy, llvmContext);
if (!llvmModule) {
llvm::errs() << "Failed to translate module to LLVMIR";
return failure();
Expand Down
3 changes: 2 additions & 1 deletion tests/matmul/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
PyYAML>=5.4.1
requests>=2.28.0
enum_tools==0.6.4
enum_tools==0.6.4
numpy<2

0 comments on commit 25b05a5

Please sign in to comment.