Commit Graph

54 Commits

Author SHA1 Message Date
Saleel Kudchadker bcd23335fb Merge "Change HIPRTC Version to 9.0" into amd-master-next 2020-03-09 22:55:27 -04:00
Vladislav Sytchenko ecd7c99b49 Add hipDrvMemcpy3D.
This is the equivalent of cuMemcpy3D.

Change-Id: Ib2e06dbd6f5093c931cdfd36c87617f32acffc2d
2020-03-09 16:11:25 -04:00
Saleel Kudchadker c540a55d21 Change HIPRTC Version to 9.0
Change-Id: I7e88df61248f0fe6e33c2315805f9e49a493cf29
2020-03-09 11:28:55 -07:00
Saleel Kudchadker 08c6d941ca Fix HIPRTC headers to export C style symbols
Change-Id: I3e0d2b19ace4a9096e3e46bd22f420483da51a8a
2020-03-09 14:18:46 -04:00
Vladislav Sytchenko 38004b6ef0 Fix Windows build.
extern "C" on Windows implies nothrow. We shouldn't be throwing exceptions either way.

Change-Id: If0ed1f7ec194bf7f65b7cea1a5c250e768a8f190
2020-03-09 11:46:55 -04:00
Vladislav Sytchenko 2e9d177304 Add hipMemcpy3DParams -> HIP_MEMCPY3D conversion
Change-Id: I66dd1ae722b8c0d7ddb2562c958b14854e6b86bc
2020-03-06 14:33:52 -05:00
Vladislav Sytchenko dbb8f96a8e Fix dangling pointer after hipUnbindTexture() call
Change-Id: Ic4b476c62ebfae31e94dd139b20b6aaaa52bb866
2020-03-06 14:10:56 -05:00
Vladislav Sytchenko 90feaf046f Add missing coversion cases.
Handle converting signed int cases of hipResourceViewFormat to number of channels.

Change-Id: Ica8ae6f644edfaa0d4803d0b8e90e320479118e2
2020-03-06 14:06:21 -05:00
Vladislav Sytchenko 3fc50731ae Correct logic in ihipMemcpyAtoA()
HIP assumes that image width is in bytes, but VDI assumes that image width in pixels. Need to perform byte -> pixel coversion before doing anything.

Change-Id: Ia9fd1f46d05db3fbe8049add10b4d7e5118a2b9a
2020-03-05 15:03:18 -05:00
Vladislav Sytchenko f28e2ebb42 Fix typos in ihipMemcpy3D()
Change-Id: I8720f113642f00bb013cf46284e9b13cc932bf4a
2020-03-05 14:11:55 -05:00
agodavar 65ffaf82d8 Enable tests that are passing on hip-vdi
Change-Id: I7de965f7e8bb7e4d0fa61cd584f0cd118c1e212e
2020-03-05 16:08:51 +05:30
German Andryeyev 33da3f5c50 Merge "SWDEV-193956 - [hipclang-vdi-rocm][perf]" into amd-master-next 2020-03-04 18:04:52 -05:00
Michael LIAO f70a66a7b3 Fix -Werror=switch.
Change-Id: Ib0850a3f79308efeeecd18bb03ecd82bd355ef85
2020-03-04 17:52:39 -05:00
Saleel Kudchadker d97e32d837 Merge "Add -Wno-ignored-attributes flag to mute warnings" into amd-master-next 2020-03-03 20:39:16 -05:00
Vladislav Sytchenko 25f107e2b6 Fix Windows build.
Calm down warning C4715: not all control paths return a value.

Change-Id: I99d939b84770a499bb6a0edcc3bc0bf12961a711
2020-03-03 16:14:12 -05:00
German Andryeyev fe1fad4805 SWDEV-193956 - [hipclang-vdi-rocm][perf]
~45% to 50% of Performance drop on rocBLAS_int8 test

Enable cudaSetDeviceFlags() api call. Use active wait by default
for all devices.

Change-Id: Ifc2ebe3dd9b0aa3fdbfbc9cb5c2cd8b3b726124f
2020-03-02 18:35:56 -05:00
Vladislav Sytchenko 87178f9456 Fix hipMemcpy3d (partially)
Incoming changes from upstream split the struct hipMemcpy3DParms into two separate ones - hipMemcpy3DParms and HIP_MEMCPY3D, which are cudaMemcpy3DParms and CUDA_MEMCPY3D equivalents respectively.

Note that HIP_MEMCPY3D is missing half the members of CUDA_MEMCPY3D (this should be fixed in PR#1887). Work around this by using a substitute _HIP_MEMCPY3D struct for now.

Change-Id: Ic15134e6deb260189b662b3804d2309a9b8473e9
2020-03-01 13:52:05 -05:00
Saleel Kudchadker 6f2a872d87 Add -Wno-ignored-attributes flag to mute warnings
Change-Id: Ib9ad75554c0ddfe025e7d500f057830f7ad2ef5b
2020-02-27 10:52:13 -08:00
Christophe Paquot fa6ed89cff Blocking and default streams' sync:
Add hip::syncStreams(dev) to sync blocking streams on a given device.
hip::syncStreams(void) should only sync streams on the current device.

Change-Id: Ib6b0735215fa0ed12c646ebd029e9763ee3712ce
2020-02-26 08:54:00 -08:00
Payam Ghafari c9b64aa2da Merge "removed excutable permission from source files" into amd-master-next 2020-02-25 17:44:43 -05:00
Payam 224d41c2f0 removed excutable permission from source files
Change-Id: Iae8639a96c55a098e28de41c5a3f38a07acbe25c
2020-02-25 16:16:47 -05:00
Vladislav Sytchenko 657fb46b45 Bump c++ version to 14.
This is to match our p4 build.

Change-Id: I084b07968ced98cca216146a0228cc36e9f56ab3
2020-02-25 14:41:55 -05:00
Vladislav Sytchenko ccc73a9fb4 hipBindTexture() should handle nullptr offset.
If a user passes a ptr that was allocated by hipMalloc(), the offset is guaranteed to be 0 and NULL may be passed as the offset parameter. We shouldn't return an error in this case.

Change-Id: I4a8d645121e5a17d5e2861a0629356a3599de9ee
2020-02-25 13:50:34 -05:00
Saleel Kudchadker 631fd65be4 Use the context variant of getNullStream
Do not create a new queue to call finish in hipFree if none was
created earlier elsewhere.
Change-Id: I87bb191e6b186ddbe607ab29d11e3ae5bc2ac8e6
2020-02-25 00:13:43 -08:00
Christophe Paquot 2203093159 Fixed a few multithreaded potential issues
Also make D2H and H2D keep track of the chain of events
when we need to use a different HostQueue.

Change-Id: I1c5da6ea6104b37ad7aac00f0eb8ea9371e6ba1c
2020-02-24 20:14:10 -08:00
Payam Ghafari b6324407f2 Merge "updated lib elf path and clean ups" into amd-master-next 2020-02-24 17:35:36 -05:00
Vladislav Sytchenko c22eb7808d HIP-VDI texture rework
The current texture implementation is based off the one for HIP-HCC. There's a lot of problems with it - only creating images from buffers, hard coding logic and ignoring user parameters. This leads to a whole lot of UB even with simple examples (as seen with RedShift's code).

This CL is aimed to bring the HIP-VDI texture implementation closer to what is described by Cuda.

hipMemcpyAtoA() - image to image copy.
hipMemcpyHtoA()/hipMemcpyDtoA() - buffer to image copy.
hipMemcpyAtoH()/hipMemcpyAtoD() - image to buffer copy.

hipArrayCreate()/hipArray3DCreate()/hipMallocArray()/hipMalloc3DArray() - creates 1D/2D/3D/1D Array/2D Array images.
hipCreateTextureObject() - creates sampler, (optional) creates 1D/2D image from buffer, (optional) creates image views.
hipBindTexture() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC).
hipBindTexture2D() - creates 2D image form buffer.
hipBindTextureToArray() - creates image view.
hipTexRefSetAddress() - creates 1D image from buffer (should create a typed buffer, however this is not compatible with HIP-HCC).
hipTexRefSetAddress2D() - creates 2D image from buffer.
hipTexRefSetArray() - creates image view.

There are still a lot of  TODOs in the code, here's a few important ones:
1. VDI doesn't support a lot of sampler flags.
2. VDI doesn't support device to image 2D/3D copy.
3. Mipmaps implementation is incomplete.
4. Image view implementation is incomplete.

Change-Id: Ia374ee27aa14f76451fee7667495036f4419a487
2020-02-24 15:23:45 -05:00
Payam c6bb103dff updated lib elf path and clean ups
Change-Id: Id0b3c295fa8353a5da8517204bf53dab9887defb
2020-02-24 15:09:34 -05:00
Payam Ghafari bec7cfbe3c Merge "export hip::host and hip::device" into amd-master-next 2020-02-24 13:29:01 -05:00
Payam 4c54fd20d8 export hip::host and hip::device
Change-Id: If1427a180f91d3f8bae203d956f21cd69345c060
2020-02-21 19:58:42 -05:00
Vladislav Sytchenko b162be8d28 Update hipGetErroName() to match hipError_t
Change-Id: I8f7fe0cca01ddec5d6333ba6e876128276323be9
2020-02-21 18:31:27 -05:00
Vladislav Sytchenko a09ae103f5 Fix Windows build
MSVC unlike gcc doesn't add colons for you.

Change-Id: I06d81a9a9b346065d0452fe7117ab82144a06f74
2020-02-21 14:37:41 -05:00
Vladislav Sytchenko 5623c74c35 Report the HW requirments for pitch alignment
Change-Id: Iaaa9d597dff57cfad5d07d931f881aba1a5f98f1
2020-02-21 11:09:47 -05:00
Vladislav Sytchenko e7f389f030 Disable hip{Create/Destroy}SurfaceObject
The current implementation of surd2D{read/write} directly addresses into
the image buffer via the hipArray::data ptr. This is incorrect to do
since we don't know the layout of the image. Also with VDI we won't have
access to the underlying image buffer.

Disable the surface api untill the device functions are switched to
using __ockl_image_{load/store}().

Change-Id: I19a33680176812d5aad3660e9045812061a1c443
2020-02-21 11:09:28 -05:00
Karthik Jayaprakash 6ba4a6be56 SWDEV-223674 - Return hipErrorNoBinaryForGpu in case particular binary is not found in clang offload bundler.
Change-Id: Iaa08fcdc8ecb719edd9f81e4a1456ea642f362f4
2020-02-19 20:01:36 -05:00
Christophe Paquot a9a6cae956 SWDEV-223262
hipMemcpyWithStream is supposed to be synchronous.

Change-Id: Ie44e37ecc9246e26a6b315c01e88a279f9e42fd7
2020-02-19 14:08:12 -08:00
Evgeny Shcherbakov 50f1957d0d Merge "adding 'hipHccModuleLaunchKernel' and 'hipExtModuleLaunchKernel'" into amd-master-next 2020-02-18 18:10:22 -05:00
Christophe Paquot 9630e40beb Introducing hip::Device which wraps around amd::Context and deviceId
Change-Id: Ie35a6edb65c001b35eb9f5d2af26e765dc41c00e
2020-02-18 17:18:56 -05:00
Karthik Jayaprakash 6ec4eb34f4 SWDEV-223394 - Pass module info from hipModuleGetTexRef to internal Platformstate:: functions.
Change-Id: I7d1ba3f940f595c3fca74a57fa20f484c52d4741
2020-02-18 11:23:03 -05:00
Christophe Paquot 9692ac6b5f Don't create a marker for start event in hipModuleLaunchKernel
And also don't optimize the case where start==stop event to compute
elapsed time since the command can be a NDRange one.
HIP directed test will need to be fixed for that.

Change-Id: I64fadd6ab8ab1a490e7a2b7165a591df5a5cf3a2
2020-02-17 14:16:31 -08:00
Evgeny 05db3fceaa adding 'hipHccModuleLaunchKernel' and 'hipExtModuleLaunchKernel'
Change-Id: Id9990ed3041b82956872a088ff019ade69d40afb
2020-02-17 16:06:24 -06:00
Christophe Paquot f2eb8ec26c Merge "hipLaunchByPtr and hipLaunchKernel deviceId potential issue" into amd-master-next 2020-02-13 18:49:06 -05:00
Christophe Paquot 1d4bb503ae SWDEV-222949 - hipEventRecord
hipEventRecord should always create a new marker so it can track work going on at the time the API is called.

Change-Id: I10ce98044be894fbacab8798441ec3d3f2753b93
2020-02-13 15:01:49 -05:00
Christophe Paquot cc63d2d7b8 hipLaunchByPtr and hipLaunchKernel deviceId potential issue
Those APIs should look at the device associated with the stream first.
If that stream is null then get the current device ID.

Change-Id: Iedde1d1644818ba64f128b988f0bd9674f5b8ad6
2020-02-13 12:00:30 -08:00
Tao Sang 2699b566cc Support app(hcc compiled/Hip-Vdi runtime linked)
The issues of the following functions have been fixed.
hipModuleLoad: Make Hip-Vdi runtime able to read code object module
generated by Hcc compiler.
hipLaunchKernel: Use introspect method to find function if it cannot
be found from platform state instance.

Change-Id: Id740e5a96614ec6a0b6c704f8f74600bfdc4983e
2020-02-12 16:42:54 -05:00
Laurent Morichetti ba0674f0a6 Remove cl_icd.cpp from the build.
We should be using the temporary fixme.cpp instead.

Change-Id: I7e7a04bb518f56584c41bdb46a9192bde1f70060
2020-02-12 10:46:33 -08:00
Mark Searles f2c1a4d827 Change 2068543 by michliao@hliao-dev-11-hip-workspace on 2020/02/10 10:04:50
SWDEV-125823 - Fix the build issue due to API interface change.

        - PR#1625 is temporarily reverted. Revert CL#2064519 correspondingly.

Affected files ...

... //depot/stg/opencl/drivers/opencl/api/hip/hip_platform.cpp#61 edit

Change-Id: I519b11532d7e6fe8cbee41804155cc9ca64e596c
2020-02-12 00:22:48 -08:00
Christophe Paquot 6462732e49 SWDEV-220533 - HostMapped should use fine grained.
Change-Id: I4ad2064e8e5ea1cd4ed7df143c778ccb685c4f22
2020-02-10 16:53:06 -05:00
Saleel Kudchadker 7eadbcdcc4 HIP/VDI CMake fixes
Fix the install directory for libamdhip64.so and create libhiprtc.so symlink

Change-Id: Id731bfa18bb3585c3f9e3ae6697b4f4687c49195
2020-02-07 00:01:35 -08:00
Saleel Kudchadker 9bbd94f5ef Disable symbol versioning for HIP/VDI
Change-Id: Ide6372bab136dd5df886ed78f61cd6c06e98e983
2020-02-05 22:20:51 -08:00