The following builtins from the CUDA spec are implemented:
- __all_sync, __any_sync, __ballot_sync and __activemask
- __match_any_sync and __match_all_sync
- __shfl_sync, __shfl_up_sync, __shfl_down_sync, and __shfl_xor_sync
The following builtins are NOT implemented, pending support in the compiler:
- __reduce_add_sync, __reduce_min_sync, __reduce_max_sync
- __reduce_and_sync, __reduce_or_sync, __reduce_xor_sync
Change-Id: I07dedbbfe5449f4b5c9b040bed59f5603ccec8c3
It cannot be moved to amd_device_functions.h because that causes circular
dependences when trying to use the macro in other files. So we create a new
header and move all assert/abort macros to that common header.
As a side-effect, also fix the macro to correctly expand the entire condition
argument, and also consume the trailing semicolon.
Change-Id: I43688c8e61183503a3a1a039b91321a3779152af
Add clang pragma push and pop diagnostics for ignoring "-Weverything"
in the hiprtc builtins header. Otherwise this will ignore even the
geniune errors occurring in the hiprtc kernels.
Change-Id: I8c3dacf902732b2ea495d83e797369f8aebd75d6
This reverts commit 353dbe6e3b.
Reason for revert: This is considered a breaking change and requires
multiple apps to change their behavior. This will be reintroduced in later releases.
Change-Id: I3481627115af1872785585a155cc6a0ecfbe1372
This reverts commit 629e279f72.
Reason for revert: This is considered a breaking change and requires
multiple apps to change their behavior. This will be reintroduced in later releases.
Change-Id: I0354ce4e0f5e6c402499a7a8c2aaf43bf5b1bfc7
Defining int64_t, uint64_t, int32_t, uint32_t in HIPRTC
seem to result in conflicts with some apps as they use
their own definitions for these types. NVRTC also doesn't
define these. Hence remove them to match the behavior.
Change-Id: I77ef70e846950698cb00375f5d0501b907f01fe3
Compiler seem to be stricter in compiler staging builds related to
safe buffer programming when compared to other component staging builds.
This seem to result in additional errors when -Werror is enabled
in MIGraphX tests.
Removes all the clang pragmas to ignore several type of warnings in all
the headers and adds a single pragma which ignores all warnings using
#pragma clang diagnostic ignored "-Weverything" in hiprtc builtins.
Change-Id: I95f302bb285b2451b19dd5dfdb7df29164b0f750
HIPRTC implementation of few type traits are defined in std
namespace which causes conflicts with the std C++ headers when
apps try to include those std headers. Instead, use the
specific implementation of these headers from __hip_internal
namespace to avoid this.
Change-Id: Ia358df159af8783d1eba9a19cd458e192bf7e9e6
- alias hipGetDeviceProperties to hipGetDevicePropertiesR0600
- alias hipDeviceProp_t to hipDeviceProp_tR0600
- remove gcnArch from new device property struct
- add new requested struct members
Change-Id: If3f5dbef3d608487d9f6f419285f4bf577ea9bf0
hip headers such as hip_math_constants.h, library_types.h,
hip_common.h, channel_descriptor.h, device_functions.h, hip_complex.h,
hip_texture_types.h, math_functions.h, surface_types.h
are added in HIPRTC
Change-Id: I4a4c198449ceb609c3ff55e00b43056c1f085431
Seems the windows linker error seen with https://gerrit-git.amd.com/c/compute/ec/clr/+/886078
also exists for linux, but only appears with dynamic linker. This fixes both usecases.
Change-Id: I1bb6df151eb1e09f75af4d461ead28bcbaa5f236
PATHS have lower priority than system paths so if there is a clang installation in /usr/local find_package(Clang)
will pick that instead. To fix this provide the llvm path via the HINTS argument instead.
Change-Id: I57794a9a5c5fc26f12c60798fbc8e826c1880e13
- disable deprecated function use warning
- disalbe size_t to .type' warning
- disable conversion from 'type1' to 'type2' warning
Signed-off-by: sdashmiz <shadi.dashmiz@amd.com>
Change-Id: I64161fd37cf56de3d132102103267ae8da40193a
Because hipRTC is now using the newer
AMD_COMGR_COMPILE_SOURCE_WITH_DEVICE_LIBS_TO_BC, and now that this
action has been fixed for HIP compilations in Comgr, hipRTC no
longer needs separate Comgr call to link in the device libs.
Change-Id: Ibf9024cbaaab825584566e8d0b5fce60d7063dd8
The previous implementation using std::copy() resulted in
differences between the in-memory and on-disk representations.
With the updated implementation, we get the same contents.
Change-Id: Iadfae3cd7f7ba99538da2ac4f11f30f5a78260d8
This reverts commit 627e689ad7.
Reason: Adding "-Xclang" and "-disable-llvm-passes" in hiprtc
compilation seem to cause perf issues and memory fault in few apps.
Change-Id: I12ff46293c7b7afb24d570351736d884d2881b77