[arrayfire] 38/84: MEMINFO -> AF_MEM_INFO. Add documentation for the macro
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Mon Jan 4 23:22:21 UTC 2016
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch master
in repository arrayfire.
commit 0b11c6efc7b012197a2288db6463e7a355b5d76b
Author: Shehzan Mohammed <shehzan at arrayfire.com>
Date: Wed Dec 16 17:25:29 2015 -0500
MEMINFO -> AF_MEM_INFO. Add documentation for the macro
---
include/af/macros.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 52 insertions(+), 4 deletions(-)
diff --git a/include/af/macros.h b/include/af/macros.h
index 65077dc..3c52321 100644
--- a/include/af/macros.h
+++ b/include/af/macros.h
@@ -22,15 +22,63 @@
} while (0);
#endif
-#define MEMINFO(msg) do { \
+/**
+ * AF_MEM_INFO macro can be used to print the current stats of ArrayFire's memory
+ * manager.
+ *
+ * AF_MEM_INFO print 4 values:
+ *
+ * ---------------------------------------------------
+ * Name | Description
+ * -------------------------|-------------------------
+ * Allocated Bytes | Total number of bytes allocated by the memory manager
+ * Allocated Buffers | Total number of buffers allocated
+ * Locked (In Use) Bytes | Number of bytes that are in use by active arrays
+ * Locked (In Use) Buffers | Number of buffers that are in use by active arrays
+ * ---------------------------------------------------
+ *
+ * The `Allocated Bytes` is always a multiple of the memory step size. The
+ * default step size is 1024 bytes. This means when a buffer is to be
+ * allocated, the size is always rounded up to a multiple of the step size.
+ * You can use af::getMemStepSize() to check the current step size and
+ * af::setMemStepSize() to set a custom resolution size.
+ *
+ * The `Allocated Buffers` is the number of buffers that use up the allocated
+ * bytes. This includes buffers currently in scope, as well as buffers marked
+ * as free, ie, from arrays gone out of scope. The free buffers are available
+ * for use by new arrays that might be created.
+ *
+ * The `Locked Bytes` is the number of bytes in use that cannot be
+ * reallocated at the moment. The difference of Allocated Bytes and Locked
+ * Bytes is the total bytes available for reallocation.
+ *
+ * The `Locked Buffers` is the number of buffer in use that cannot be
+ * reallocated at the moment. The difference of Allocated Buffers and Locked
+ * Buffers is the number of buffers available for reallocation.
+ *
+ * The AF_MEM_INFO macro can accept a string an argument that is printed to screen
+ *
+ * \param[in] msg (Optional) A message that is printed to screen
+ *
+ * \code
+ * AF_MEM_INFO("At start");
+ * \endcode
+ *
+ * Output:
+ *
+ * AF Memory at /workspace/myfile.cpp:41: At Start
+ * Allocated [ Bytes | Buffers ] = [ 4096 | 4 ]
+ * In Use [ Bytes | Buffers ] = [ 2048 | 2 ]
+ */
+#define AF_MEM_INFO(msg) do { \
size_t abytes = 0, abuffs = 0, lbytes = 0, lbuffs = 0; \
af_err err = af_device_mem_info(&abytes, &abuffs, &lbytes, &lbuffs); \
if(err == AF_SUCCESS) { \
- printf("MemInfo at %s:%d: " msg "\n", __FILE__, __LINE__); \
+ printf("AF Memory at %s:%d: " msg "\n", __FILE__, __LINE__); \
printf("Allocated [ Bytes | Buffers ] = [ %ld | %ld ]\n", abytes, abuffs); \
printf("In Use [ Bytes | Buffers ] = [ %ld | %ld ]\n", lbytes, lbuffs); \
} else { \
- fprintf(stderr, "MemInfo at %s:%d: " msg "\nAF Error %d\n", \
+ fprintf(stderr, "AF Memory at %s:%d: " msg "\nAF Error %d\n", \
__FILE__, __LINE__, err); \
} \
-} while(0);
+} while(0)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list