Support hipLaunchCooperativeKernelMultiDevice()
- Add hipCooperativeLaunchMultiDeviceNoPreSync and
hipCooperativeLaunchMultiDeviceNoPostSync support to pass a cuda test
Change-Id: If518f11ef2636a2235e5df9e77f879d8ced68102
[ROCm/clr commit: 74e98ea447]
These fixes address regressions caused by http://gerrit-git.amd.com/c/compute/ec/hip/+/337601
Currently we're converting a 1D offset into a 3D offset, which doesn't make much sense once you consider the fact that this offset is relative to a different origin than our current 3D offset.
I traced through our blit kernels in VDI - the copy buffer rect path is able to handle immediate offsets in the 3D buffer via the amd::BufferRect::start_ parameter.
Instead of adjusting the offset, simply adjust the start of the region.
Change-Id: Ic8797a2c8ac0ad106f246f61ff06ca1ca03d3058
[ROCm/clr commit: a3613cc6da]
If the code object is embedded in an already mapped file, and the
lifetime of the mapped file exceeds the lifetime of the executable,
we do not need to make a copy of the binary.
This allows the ROCR to present the code object URI as
file:///path/to/file#offset=X&size=Y.
[ROCm/clr commit: 67830996a9]
libc++ defines fma as template function for auto promotion of mixed-type
arguments. libc++ does not handle _Float16 as _Float16 is not a supported
type by C++ standard. As such, it is unlikely we can commit our fix for
_Float16 to libc++ trunk.
Therefore we handle _Float16 with a template specialization of
__numeric_type in HIP headers.
Change-Id: If01960a657ebf1a7a67463cdcf66fab7458dff3c
[ROCm/clr commit: 6f439f0232]
Tests that check POSIX specifiers with a single thread:
- hipPrintfSpecifiers.cpp : all conversion specifiers
- hipPrintfFlags.cpp : common flags that modify conversions
- hipPrintfAltForms.cpp : alternate forms ('#')
- hipPrintfStar.cpp : additional arguments ('*')
- hipPrintfWidthPrecision.cpp : floating point details
Tests that check functionality on top of hostcall
- hipPrintfBasic.cpp : divergent calls, series of calls, return value, etc
- hipPrintfManyWaves.cpp : many waves printing together
- hipPrintfManyDevices.cpp : many waves on many devices
Change-Id: I35e069f4c542f896999239996dc89eda0faad7b8
[ROCm/clr commit: 01d4117789]
This adds the missing compilation flags to hip::device so it can compile with hip-clang compiler.
Change-Id: Ie2b30ea606bfca385a0e84ae03ee0a8d828ad16a
[ROCm/clr commit: 631f82ab82]
Even though the runtime and driver texture object API is one to one, the structs used by these APIs are not. See hipResourceDesc vs HIP_RESOURCE_DESC differences.
These differences are not trivial and most likely won't be able to handled by hipify, so we need new API entry points.
Change-Id: Id4bcb1ad0ae15378dbdb5a2ed07e5ea30f320082
[ROCm/clr commit: a09fadecf2]
Fixes github issue: #1754
- When ResourceDesc::resType is hipResourceTypeLinear ignore address mode and filter mode.
- When textureDesc::normalizedCoords is set to zero, AddressModeWrap and AddressModeMirror won't be supported and will be switched to AddressModeClamp.
[ROCm/clr commit: 68f1b814b1]
This patch is a workaround to support user pitch for hipMemcpy{2D/3D}.
Historically OpenCL didn't support pitch with clEnqueueFillBuffer(), so neither did we in VDI. Adding it now will be slightly nontrivial, since the fill kernel and runtime in many places will need to be modified.
As a temporary workaround for cases when pitch > width, we can just enqueue a fill for each row separately. This implementation is slow, but it satisfies the correctness criteria.
Change-Id: Idfeca349288b51d6ff84a7cf001fb63c6a66818a
[ROCm/clr commit: 6e0722a5d0]
Fixes SWDEV-207362,
The output file name should not contribute to picking up the right flags for the compiler. This fix solves issues when the output has conflicting extensions which confuses hipcc to treat them as the source files and add the required flags for them.
PS: Output file refers to the file followed by -o
Change-Id: I1095966c11143ad73e81fabc35b4e9de5d3afada
Example: hipcc test.o -o test.hip will add the flags for .hip compilation ignoring the fact that it is an output file
[ROCm/clr commit: 36f24a40e5]
- Use symbol value as the qeury key. Compared to the symbol name, the
symbol value is more robust as developers may use unqualified or
qualified identifiers. It also removes the mangling and/or demangling
requirement for the runtime API.
Change-Id: I9d4259f3842612c7cc98551269fc2092d8b5c19e
[ROCm/clr commit: a14695d4eb]
This is cherry-picked from PR#1947 that was committed to the
github repo. It allows printf to work with hip-clang and HCC
runtime.
Change-Id: I754753250ea1e694cf3441722e2d4c9d25fa75bc
[ROCm/clr commit: c014c733c6]