commit | fbd494d1244259717858f6dff69884a3a02eb37d | [log] [tgz] |
---|---|---|
author | Hua <allenhjiang@outlook.com> | Tue Jun 04 09:47:29 2019 -0700 |
committer | Thierry Moreau <moreau@uw.edu> | Tue Jun 04 09:47:29 2019 -0700 |
tree | 3444810989fcd18a4ffa854f351342c964d2562b | |
parent | 3c233635c13b7344b70b9e7fd9a45ad10d6ab09c [diff] |
[Bugfix] [VTA] VTA DRAM Have A Logic Issue May Cause GEMM Output Wrong. (#3278) * [Bugfix] [VTA] VTA DRAM Have A Logic Issue May Cause GEMM Output Wrong. Symptom: after change “LOG_BLOCK_IN” and “LOG_BLOCK_OUT” from vta_config.json into 7, run vta "Simple Matrix Multiply" in "simulator", the vta calculate result for GEMM is wrong. Sometime VTA crash with error “Check failed: phy_addr != 0 (0 vs. 0) : trying to get address that is nullptr” Analysis: Simulator hardcode kPageSize into 1<<12 and physical address calculate based on this size, when doing “insn->dram_base” calculation , because GetElemBytes(dst_memory_type) larger than page size, different physcial address may get same dram_base, than caused logic issue and finally trigger GEMM out put is wrong. Solution: add logic to check if PAGE SIZE larger then "GetElemBytes" return value. * address review comments.
VTA (versatile tensor accelerator) is an open-source deep learning accelerator complemented with an end-to-end TVM-based compiler stack.
The key features of VTA include:
Learn more about VTA here.