Commit Graph

277 Commits

Author SHA1 Message Date
Ben Sander 938933ca2f Refactor for stream->_av.
- move _av into stream critical section.  ( HCC accelerator_view is not
  thread-safe but HIP steram is. )
- Refactored many places in code that need to acquire critical section.
some were previously thread races, ie enqueueing marker.

-remove support for GRID_LAUNCH_VERSION < 20
-Enable USE_AV_COPY based on HCC work-week.
- Review hipModule docs, some calrity/editing.

Change-Id: I3ce7c25ece048c3504f55ecd4683e506bb1fc8b6


[ROCm/clr commit: 02f65a483c]
2016-09-02 09:46:59 -05:00
Ben Sander 704b269d28 enable dynamic shared always
Change-Id: Idc246546f583a82489ef34d1fe22d0e118b1e0ed


[ROCm/clr commit: 6a8ae733cc]
2016-09-02 09:46:59 -05:00
Aditya Atluri 1e6aa52868 added logger for return status
Change-Id: Ib93012a15b1cfa90714a6ebd5153cc40e28e6566


[ROCm/clr commit: 3fbe062008]
2016-09-02 09:44:00 -05:00
Aditya Atluri 40d824337e fixed code according to convention
Change-Id: Ib90c84a30ea6da3531e8b7c3e281dd4b31915198


[ROCm/clr commit: af86d28187]
2016-09-02 09:31:37 -05:00
Rahul Garg 04a3cdb846 Removed Doxygen return codes from source file
Change-Id: Iaf9f13df73a9c17c494c9ff67203b836ee90648d


[ROCm/clr commit: 093569e611]
2016-09-02 18:37:26 +05:30
Rahul Garg bb03a2274d Added hipDeviceTotalMem
Change-Id: I877fbc9e4767bbd70ecd0184f5123c9bc6cbd06f


[ROCm/clr commit: 302f6c1e3a]
2016-09-02 15:12:50 +05:30
Rahul Garg c60fc14dcd Added hipDeviceComputeCapability, hipDeviceGetPCIBusId and hipDeviceGetName
Change-Id: Ibe2d975df796712633900ddc7b0734ec2b8ab4ec


[ROCm/clr commit: 392860bf20]
2016-09-02 14:45:53 +05:30
pensun 65ce463726 Modify hipMalloc to take size of 0 and return NULL pointer for it.
Modify hipMemoryAllocate test for this change.

Change-Id: I884aee0cd5fe0c60aebb4cb37cdbb4833c5bd0c7


[ROCm/clr commit: 4ed2035dd2]
2016-09-01 13:08:30 -05:00
Rahul Garg 96fd13305a Added doxygen documentation for hipCtxXXX APIs
Change-Id: Id9cf3491e9a8c78cb7bfeb9976c36d6fe565628f


[ROCm/clr commit: 25f3032328]
2016-09-01 12:22:37 +05:30
Rahul Garg f2e8d2c976 Added HIP_INIT_API to hipDeviceSynchronize()
Change-Id: I9bd6bf206905621b17e1999994b5ea09b7382180


[ROCm/clr commit: a949060b12]
2016-09-01 11:00:30 +05:30
Aditya Atluri eb6863017c remove HIP_INIT_API from ihipSynchronize
Change-Id: Ibe0739efe55573c023212d9c28ba847c777e434c


[ROCm/clr commit: 7fdebfb8e3]
2016-08-29 21:42:22 -05:00
Aditya Atluri ab83d52bd4 Added HIP_INIT_API for all context apis
Change-Id: I3dd8c068236d9572659a58683fdb59d2b9dccaf3


[ROCm/clr commit: cfac62f7e6]
2016-08-29 21:36:34 -05:00
Ben Sander 78cfa5f6d6 Refactor trace code for hipLaunchKernel.
- Use standard print functions for streams.
- Add HIP_INIT macro, for cases where we want to initialize HIP but not
  log an API (ihipPreKernelLaunch).

Change-Id: If43cf8a363d918bcd3722a2e6a965d4cfa2e03e7


[ROCm/clr commit: fa9b95838a]
2016-08-29 18:37:57 -05:00
Ben Sander f538d2e510 remove stray printf
Change-Id: Ie64778a83dfe684ffaab3c31bc3d09b713f825b9


[ROCm/clr commit: eb61114739]
2016-08-29 18:36:30 -05:00
Aditya Atluri 41a363a6b7 Changed module api to work with nvcc and hipcc path
- Added cuda and cudart linking for nvcc path in hipcc
- Added hipMemcpyHtoD and hipMemcpyDtoH for nvcc path
- Changed hipDeviceptr to hipDeviceptr_t
- Fixed hipMemcpy*to* API signatues

Change-Id: I6ef076b507f92502efda475c83dcdcdd462afc37


[ROCm/clr commit: fb0c432095]
2016-08-29 15:05:12 -05:00
Aditya Atluri 9fe6924154 Cleaned up module api
- Moved HIP_INIT_API from internal to all public apis
- renamed hipLaunchModuleKernel to hipModuleLaunchKernel
- Changed tests according to the changed api

Change-Id: I822ff63c7c5b7dad340ece49456baf9d89428e9f


[ROCm/clr commit: 71991ed8f8]
2016-08-28 16:48:57 -05:00
Ben Sander 713eb5636d Remove cutnpaste check on uninitialized hsa status
Change-Id: Icc0256b9b1bd01d45cca4feb1106cfe7427bcd15


[ROCm/clr commit: 46c3ff52a6]
2016-08-28 16:35:27 -05:00
Aditya Atluri fa734c5a6a Added explicit memory copy direction apis
- Fixed stale printf in context api
- Added 4 sync memcpy apis
  1. hipMemcpyHtoD
  2. hipMemcpyDtoH
  3. hipMemcpyDtoD
  4. hipMemcpyHtoH
- Added test for added apis

Change-Id: I4a9c382445b62631f8d0bcbb9a670322288b72b1


[ROCm/clr commit: f722a132a4]
2016-08-26 13:11:01 -05:00
Aditya Atluri 33a38a0e26 Added NVCC support and name changes
- Added NVCC support for module APIs
- Changed hipFunction and hipModule data types to hipFunction_t and hipModule_t
- Created new intenal ihipModuleGetFunction as it is used twice
- Changed test to match with the new data types

Change-Id: I300a1c7fd40ed7065b1b8b9de97e3a06b96ed729


[ROCm/clr commit: 74a8fb132d]
2016-08-26 10:32:01 -05:00
Rahul Garg c43c365811 Added logic to update primary ctx when ctx stack is empty, updated hipCtxDestroy and ctxGetCurrent functions
Change-Id: Ia0a8943c121bc1279788a1cfa9be59af614b04a6


[ROCm/clr commit: 452108b0e6]
2016-08-26 19:03:23 +05:30
Rahul Garg 8e09eacd0b Addition of hipCtxEnablePeerAccess and hipCtxDisablePeerAccess functions
Change-Id: I381c8cbbde17eae7d9bb5d4cb1596cebf4bda039


[ROCm/clr commit: a1d401336b]
2016-08-26 13:51:33 +05:30
Aditya Atluri 82deaeb581 Changed how hipEvent_t is typedefed internall
- Mapped hipEvent_t directly to ihipEvent_t* instead of a handle

Change-Id: I5a8bcca0ef962932e0738c03eb1fc914d23022ae


[ROCm/clr commit: 25be4fb532]
2016-08-25 14:34:41 -05:00
Aditya Atluri d769b71efc Added hipModuleGetGlobal and hipModuleLoadData
Change-Id: Iaec873f7d86b72911b6ad32e067a4dfe3d552fe6


[ROCm/clr commit: f22a3189a3]
2016-08-25 14:16:53 -05:00
Aditya Atluri 069d132f41 changed internal structure of hipFunction and hipModule
Change-Id: Ifa343782e29d7e056efc47e56253311013005093


[ROCm/clr commit: af4dc556eb]
2016-08-24 09:47:11 -05:00
Aditya Atluri 9c36b77d39 Module test correction and hipModuleUnload API
- Corrected the hipModule.cpp test to minimal code
- Added hipModuleUnload API
- Added hipModuleUnload API test

Change-Id: I9c40337043d7972a570b795e1bfc104bd2c4d8aa


[ROCm/clr commit: 768287f2a2]
2016-08-23 14:19:15 -05:00
Aditya Atluri 52305186ef Added stream synchronisation for hipLaunchModuleKernel
- The module kernel launch is now in sync with commands in its stream
- Moved launch kernel inside ihipStream

Change-Id: Ic00cfcf4882bf81b6203c36881a52575ea68b529


[ROCm/clr commit: c0fbe7891c]
2016-08-22 14:17:55 -05:00
Rahul Garg f1f04949ac Added support for hipCtxSynchronize and hipCtxGetFlags,modified hipDeviceSynchronize
Change-Id: If7bac667a262fa8c0cb3dc93e97f2534855acd07


[ROCm/clr commit: b0ba622ed5]
2016-08-22 16:15:27 +05:30
Aditya Atluri 9571f355ac Added support for executable and symbols for data structures
- symbol handle is added to hipFunction
- executable handle is added to hipModule
- This way, the APIs doesn't need to track the values

Change-Id: I7cf05329cf79fe946319d7746bd9f5503268fda4


[ROCm/clr commit: 9eaabb507c]
2016-08-19 08:49:34 -05:00
Aditya Atluri a0740e524c Added hipLaunchModuleKernel and new error codes
- hipLaunchModuleKernel maps to cuLaunchKernel
- Whole lot of new error codes added for the use of driver api
 - KernelParams arguments is not yet supported
 - hipLaunchModuleKernel is a synchronous api (will change eventually)
 - All the commands in a stream will wait on host when hipLaunchModuleKernel is called on it

Change-Id: Ib4a4fae1db06fbb3a81d5a5575b026aa821264ed


[ROCm/clr commit: 792811fd52]
2016-08-18 11:26:55 -05:00
Maneesh Gupta 330052d54b Fix normcdf signature
Change-Id: I36b225cfe03db687f295aeea8a006d535bc14231


[ROCm/clr commit: 260c0dc4ab]
2016-08-17 22:07:06 +05:30
Aditya Atluri 8747679e06 Added copyright to hip_module.cpp file
Change-Id: Ifc5f1e251d5c52a5b59f372b3fada938dbecb34a


[ROCm/clr commit: b6ff7df81e]
2016-08-17 10:36:28 -05:00
Rahul Garg 84a789c85c Added further hipCtxXXX Apis
Change-Id: I286d962a06cee656c1c652b3f6b45078587fbc41


[ROCm/clr commit: 96de030c2d]
2016-08-17 16:28:22 +05:30
Aditya Atluri bd70c942c7 corrected issues from hipModule API
Change-Id: I9d07884db20df5632f5a69b1a89a0e6ca531712b


[ROCm/clr commit: a3cb0f37c4]
2016-08-16 16:49:42 -05:00
pensun 4353cefd6e add occupancy support for NV path; fix hipPeekAtLastError on HCC path
Change-Id: I26b0e1875c19d7c636ffcc18f1738926572ded81


[ROCm/clr commit: e70cfd3582]
2016-08-16 16:25:03 -05:00
Aditya Atluri 5513a08601 Added kernel compilation driver apis
1. Added 2 new driver apis, hipModuleLoad, hipModuleGetFunction

Change-Id: If464a7fad178121e3da791c7ac9e17ebc01a9cd0
Issues: When a sample written with them shows Aborted (core dumped) when exiting


[ROCm/clr commit: b8597512ca]
2016-08-16 14:36:25 -05:00
Rahul Garg a23ea89cae Implementation of hipCtxGetDevice
Change-Id: I067572e486323c3aad6f744a2c0c4997c8696af6


[ROCm/clr commit: 5eb889f73c]
2016-08-13 01:17:46 +05:30
Rahul Garg b55d509790 First implementation of hipCtxXXX functions
Change-Id: I4609cbe6bd90a1fff8655bff4fdd773864397aba


[ROCm/clr commit: f734f12411]
2016-08-13 00:09:08 +05:30
Ben Sander a4bfccf628 Context update.
- Remove tls_deviceID.
- Add first passing test.

Change-Id: If3e2f254abf589028cfe4f9e6369745f04160de0


[ROCm/clr commit: a9bcee3d77]
2016-08-10 08:59:47 -05:00
Rahul Garg dbf9fd8312 Changed StagingBuffer class to UnpinnedCopyEngine
Change-Id: I1e212bfc8030dcf225ecf78fd7b23fda9b1de92f


[ROCm/clr commit: d08b1239ee]
2016-08-09 21:29:42 +05:30
Rahul Garg cb771c60d3 Moved sync copy decision logic to staging buffer class
Change-Id: I5c398772375fcc1f174a7597eea1215ce7bf80b4


[ROCm/clr commit: 4044cb412c]
2016-08-09 09:28:18 +05:30
Ben Sander 0c8ca4b37d Add initial context implementation.
APIs: hipInit, hipCtxCreate.
Track TLS default ctx.  Set deviceID now changes the ctx.
Add first context test.

Change-Id: If1cb9989b5a04a36147e25e84904336c7b6f3d88


[ROCm/clr commit: f19f2248bf]
2016-08-08 17:49:02 -05:00
Ben Sander c85f34bf8a Code cleanup, use camelCase where appropriate.
Change-Id: I5a7ec50df8bbb3e7a3b313c0b12e2dd55ae4a09c


[ROCm/clr commit: ac173c3ae8]
2016-08-08 14:54:38 -05:00
Ben Sander e6dd8281d0 Move copy kernel templates into hip_memory.cpp
Change-Id: I862529f3fa8232372c6bacaa5d36f035bbdd32a1


[ROCm/clr commit: 6dbe554894]
2016-08-08 12:07:12 -05:00
Ben Sander 3ee6e7f8ab Split ihipCtx_t into ihipCtx_t and ihipDevice_t .
Major change to existing code base.
    Ctx holds streams, enables peers, and flags.
    Device holds accelerator, hsa-agent, device props.

Add hipCtx_t.

Add peer APIs that accept hipCtx_t (in addition to deviceId)

Compiles and passes directed tests.

Change-Id: Iddab1eb9edbf90caad2ef5959c6b811d658197f1


[ROCm/clr commit: d09b19bb6c]
2016-08-08 11:55:57 -05:00
Ben Sander e5300e2b40 Change Device->Ctx
Change ihipDevice_t -> ihipCtx_t (new)
Change ihipGetTlsDefaultDevice->ihipGetTlsDefaultCtx
Some other changes from device->ctx where appropriate.

Change-Id: I5c4ae93b2fd42c6303aa23d748eb166b7431925d


[ROCm/clr commit: 0d16565061]
2016-08-07 21:47:12 -05:00
Ben Sander aa43c9e006 Remove ihipStream_r::_device_index
Replace with direct pointer to device.  Cleaner, and prep
for transition to contexts.

Change-Id: I0e550f34412923d46c541c0a14bb7d29c3fd4b11


[ROCm/clr commit: 3c604b6430]
2016-08-07 20:47:06 -05:00
Rahul Garg 7b7f9dab90 Region based apis to pool based api changes
Change-Id: If53019eebafe051ab4e811863995f78315297080


[ROCm/clr commit: 52712e2134]
2016-08-05 15:05:57 +05:30
Ben Sander ffd5a709f6 Remove faulty assert for kernelCnt==0
Change-Id: I8a925c95f48e857c0a31f44561499e90dc6df552


[ROCm/clr commit: bb005d1755]
2016-08-01 13:38:47 -05:00
Aditya Atluri 33f459c541 Signal Fix: The signals in a stream are re-used
1. Before, the signal pool is increased depending on the usage
2. After, a static number of signals are allocated to the pool
Only these are used by hip in a stream
3. If the signals required are more than the pool size, the
stream has to wait to make sure all the signals are available
4. Once they are available, the stream can use them
5. Removed HIP_NUM_SIGNALS_PER_STREAM because of redundancy with HIP_STREAM_SIGNALS
6. Increased signal count from 2 to 32.
Future Work: Dynamically increase the pool size depending on the number of
streams allocated by the application. And, null stream should have more signals

Change-Id: I6be36e084f26bb04766fabf776c7210aee0f9e91


[ROCm/clr commit: 9c7ee12822]
2016-07-28 23:01:35 -05:00
Ben Sander 381f67e067 Remove dead enqueueBarrier function.
Change-Id: Ib18fe6bd96ce24dbeb342961ddb5721f7d03f2b2


[ROCm/clr commit: f7ab82cb39]
2016-07-28 22:48:22 -05:00