d3bb1ca4af
The MemoryAllocAll test in kfdtests exercises the new KFD memory availability API by trying to allocate a single buffer object that exactly fills all of vram. Desired object size is determined using the memory availility KFD ioctl via libhsakmt, then an object is allocated slightly larger than that size. If the allocation attempt fails then the test tries to allocate a slightly smaller object, and continues trying with smaller sizes until the allocation succeeds. The test succeeds if the successfully allocated object is within some specified tolerance of the available memory reported. There are a number of known issues that can cause the successfully allocated object to be significantly smaller than reported availability. Until these issues are addressed, we should not fail the test, but just log the actual divergence between the size of the object we thought we could allocate, and what was actually possible. Signed-off-by: Daniel Phillips <daniel.phillips@amd.com> Change-Id: I165a30865ffbb2353286dcc896ad8e24af124615
1. Note on building kfdtest To build this kfdtest application, the following libraries should be already installed on the building machine: libdrm libdrm_amdgpu libhsakmt If libhsakmt is not installed, but the headers and libraries are present locally, you can specify its directory by export LIBHSAKMT_PATH=/*your local libhsakmt folder*/ With that, the headers and libraries are searched under LIBHSAKMT_PATH/include and LIBHSAKMT_PATH/lib respectively. 2. How to run kfdtest Just run "./run_kfdtest.sh" under the building output folder. You may need to specify library path through: export LD_LIBRARY_PATH=/*your library path containing libhsakmt*/ Note: you can use "run_kfdtest.sh -h" to see more options.