-
Notifications
You must be signed in to change notification settings - Fork 528
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Programming interface #3532
base: docs/develop
Are you sure you want to change the base?
Programming interface #3532
Conversation
e8ce33e
to
0c1132d
Compare
568a8c5
to
441730f
Compare
441730f
to
0e9eafd
Compare
|
||
The programming interface document will focus on the HIP runtime API. The runtime API provides C and C++ functions for event, stream, device and memory managements, etc. The HIP runtime on AMD platform uses the Common Language Runtimes (CLR), while on NVIDIA platform HIP runtime is only a thin layer over the CUDA runtime. | ||
|
||
- **CLR** contains source codes for AMD's compute languages runtimes: ``HIP`` and ``OpenCL™``. CLR includes the implementation of ``HIP`` language on the AMD platform `hipamd <https://github.com/ROCm/clr/tree/develop/hipamd>`_ and the Radeon Open Compute Common Language Runtime (rocclr). rocclr is a virtual device interface, that HIP runtime interact with different backends such as ROCr on Linux or PAL on Windows. (CLR also include the implementation of `OpenCL <https://github.com/ROCm/clr/tree/develop/opencl>`_, while it's interact with ROCr and PAL) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CLR contains source codes for AMD's common languages runtimes:
0e9eafd
to
6c5b4a0
Compare
d19bb62
to
d1af506
Compare
d9b1cb2
to
1d02157
Compare
d1b9a3e
to
8d4d17b
Compare
8d4d17b
to
7b45147
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job overall, mostly just nitpicking about wording or adding details
docs/understand/hip_runtime_api.rst
Outdated
Read-only storage visible to all threads in a given grid. It is a limited | ||
segment of global with queryable size. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should highlight the differences to global memory, i.e. (possibly) different caching, and performance recommendations.
Also I'm not sure if it's really a segment of global memory (which is a logical partition), but rather part of device memory (as in physically located there)
Read-only storage visible to all threads in a given grid. It is a limited | |
segment of global with queryable size. | |
Read-only storage visible to all threadson a given device. It is a limited | |
segment backed by device memory with queryable size. It needs to be set by the host before kernel execution. | |
Constant memory provides the best performance benefit when all threads within a warp access the same address. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe here given grid was better. Updated. Let's discuss offline.
docs/understand/hip_runtime_api.rst
Outdated
Unified Memory is a single memory address space accessible from any processor | ||
within a system. This setup simplifies memory management processes and enables | ||
applications to allocate data that can be read or written by code running on | ||
either CPUs or GPUs. The Unified memory model is shown in the following figure. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no figure here :)
Also, should the performance implications be mentioned here?
ea3b4f7
to
0c6386c
Compare
5e25f0a
to
77cd365
Compare
cb7cb3d
to
7ea85a1
Compare
@randyh62 The programming interface currently.