-
Notifications
You must be signed in to change notification settings - Fork 569
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* t * Partial fix for MIOpen * Remove logs * Completely fix MIOpen build * Revert boost * Add half to products * Specify compat
- Loading branch information
Showing
4 changed files
with
141 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
using Pkg | ||
using BinaryBuilder | ||
|
||
include("../common.jl") | ||
|
||
build_tarballs( | ||
ARGS, configure_build(v"5.2.3")...; | ||
preferred_gcc_version=v"7", preferred_llvm_version=v"9") |
18 changes: 18 additions & 0 deletions
18
M/MIOpen/[email protected]/bundled/patches/boost-fix.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
diff --git a/include/miopen/config.h.in b/include/miopen/config.h.in | ||
index 1849b4344..d0c6f2a9b 100644 | ||
--- a/include/miopen/config.h.in | ||
+++ b/include/miopen/config.h.in | ||
@@ -117,4 +117,13 @@ | ||
((HIP_PACKAGE_VERSION_MAJOR * 1000ULL + HIP_PACKAGE_VERSION_MINOR) * 1000000 + \ | ||
HIP_PACKAGE_VERSION_PATCH) | ||
|
||
+/// WORKAROUND_BOOST_ISSUE_392 | ||
+/// Workaround for https://github.com/boostorg/config/issues/392#issuecomment-1109889533 | ||
+/// See also https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1490#issuecomment-1109928102, | ||
+/// https://github.com/ROCmSoftwarePlatform/MIOpen/pull/1543 | ||
+/// TODO: Remove the W/A as soon we switch to the properly fixed boost. | ||
+#if MIOPEN_BACKEND_HIP | ||
+#include <hip/hip_version.h> | ||
+#endif | ||
+ | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
const NAME = "MIOpen" | ||
|
||
const ROCM_GIT = "https://github.com/ROCmSoftwarePlatform/MIOpen/" | ||
const GIT_TAGS = Dict( | ||
v"5.2.3" => "28747847446955b3bab24f7fc65c1a6b863a12f12ad3a35e0312072482d38122", | ||
) | ||
|
||
const ROCM_PLATFORMS = [ | ||
Platform("x86_64", "linux"; libc="glibc", cxxstring_abi="cxx11"), | ||
# TODO add, when rocBLAS 5.2.3+ is built for musl | ||
# Platform("x86_64", "linux"; libc="musl", cxxstring_abi="cxx11"), | ||
] | ||
const PRODUCTS = [ | ||
LibraryProduct(["libMIOpen"], :libMIOpen, ["lib"]), | ||
FileProduct("include/half.hpp", :libhalf), | ||
] | ||
|
||
function configure_build(version) | ||
buildscript = raw""" | ||
mv ${WORKSPACE}/srcdir/half/include/half.hpp ${prefix}/include | ||
export HALF_INCLUDE_DIR=${prefix}/include | ||
mv ${WORKSPACE}/srcdir/rocm-clang* ${prefix}/llvm/bin | ||
cd ${WORKSPACE}/srcdir/MIOpen*/ | ||
atomic_patch -p1 ${WORKSPACE}/srcdir/patches/boost-fix.patch | ||
mkdir build | ||
export AMDGPU_TARGETS="gfx900;gfx906;gfx90a;gfx1010;gfx1012;gfx1030" | ||
export ROCM_PATH=${prefix} | ||
export HIP_PATH=${prefix}/hip | ||
export HIP_PLATFORM=amd | ||
export HIP_RUNTIME=rocclr | ||
export HIP_COMPILER=clang | ||
CXXFLAGS="${CXXFLAGS} -I${prefix}/include/rocblas" \ | ||
cmake -S . -B build \ | ||
-DCMAKE_CXX_COMPILER=${prefix}/llvm/bin/rocm-clang++ \ | ||
-DCMAKE_INSTALL_PREFIX=${prefix} \ | ||
-DCMAKE_PREFIX_PATH=${prefix} \ | ||
-DCMAKE_BUILD_TYPE=Release \ | ||
-DROCM_PATH=${ROCM_PATH} \ | ||
-DAMDGPU_TARGETS=${AMDGPU_TARGETS} \ | ||
-DBoost_USE_STATIC_LIBS=OFF \ | ||
-DMIOPEN_BACKEND=HIP \ | ||
-DMIOPEN_USE_MLIR=OFF \ | ||
-DHALF_INCLUDE_DIR=${HALF_INCLUDE_DIR} | ||
make -j${nproc} -C build install | ||
install_license ${WORKSPACE}/srcdir/MIOpen*/LICENSE.txt | ||
""" | ||
|
||
sources = [ | ||
ArchiveSource( | ||
ROCM_GIT * "archive/rocm-$(version).tar.gz", GIT_TAGS[version]), | ||
ArchiveSource( | ||
"https://downloads.sourceforge.net/project/half/half/2.1.0/half-2.1.0.zip", | ||
"ad1788afe0300fa2b02b0d1df128d857f021f92ccf7c8bddd07812685fa07a25"; | ||
unpack_target="half"), | ||
DirectorySource("./bundled"), | ||
DirectorySource("../scripts"), | ||
] | ||
dependencies = [ | ||
BuildDependency(PackageSpec(; name="ROCmLLVM_jll", version)), | ||
BuildDependency(PackageSpec(; name="rocm_cmake_jll", version)), | ||
Dependency("HIP_jll"; compat=string(version)), | ||
Dependency("rocBLAS_jll"; compat=string(version)), | ||
Dependency("Zlib_jll"), | ||
Dependency("SQLite_jll"), | ||
Dependency("boost_jll"; compat="1.79.0"), | ||
] | ||
NAME, version, sources, buildscript, ROCM_PLATFORMS, PRODUCTS, dependencies | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#!/bin/bash | ||
|
||
ARGS=( "$@" ) | ||
PRE_FLAGS=() | ||
POST_FLAGS=() | ||
|
||
PRE_FLAGS+=( -target ${target} ) | ||
PRE_FLAGS+=( --sysroot=/opt/${target}/${target}/sys-root ) | ||
PRE_FLAGS+=( --gcc-toolchain=/opt/${target} ) | ||
|
||
if [[ " ${ARGS[@]} " != *' -x assembler '* ]]; then | ||
PRE_FLAGS+=( -march=x86-64 ) | ||
PRE_FLAGS+=( -mtune=generic ) | ||
fi | ||
|
||
COMPILE_BASE_DIR=/opt/${target}/${target} | ||
COMPILE_CPP_DIR=${COMPILE_BASE_DIR}/include/c++/* | ||
|
||
if [[ " ${ARGS[@]} " != *' -c '* ]] && [[ " ${ARGS[@]} " != *' -E '* ]] && [[ " ${ARGS[@]} " != *' -M '* ]] && [[ " ${ARGS[@]} " != *' -fsyntax-only '* ]]; then | ||
POST_FLAGS+=( -rtlib=libgcc ) | ||
POST_FLAGS+=( -stdlib=libstdc++ ) | ||
POST_FLAGS+=( -fuse-ld=lld ) | ||
fi | ||
|
||
COMPILE_BASE_DIR=/opt/${target}/${target} | ||
LINK_GCC_DIR=/opt/${target}/lib/gcc/${target}/* | ||
# Need `-isystem` to be in post flags, for `#include_next` to work. | ||
POST_FLAGS+=(-isystem ${COMPILE_CPP_DIR} -isystem ${COMPILE_CPP_DIR}/${target}) | ||
POST_FLAGS+=(-B ${LINK_GCC_DIR} -L ${LINK_GCC_DIR} -L ${COMPILE_BASE_DIR}/lib64) | ||
|
||
if [[ " ${ARGS[@]} " == *"-march="* ]]; then | ||
echo "BinaryBuilder: Cannot force an architecture via -march" >&2 | ||
exit 1 | ||
fi | ||
|
||
if [ ${USE_CCACHE} == "true" ]; then | ||
CCACHE="ccache" | ||
fi | ||
|
||
${CCACHE} ${prefix}/llvm/bin/clang++ "${PRE_FLAGS[@]}" "${ARGS[@]}" "${POST_FLAGS[@]}" |