gpu-compute, mem-ruby, configs: Add GCN3 ISA support to GPU model
Change-Id: Ibe46970f3ba25d62ca2ade5cbc2054ad746b2254 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/29912 Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com> Reviewed-by: Jason Lowe-Power <power.jg@gmail.com> Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
committed by
Anthony Gutierrez
parent
b0eac7857a
commit
b8da9abba7
83
src/gpu-compute/gpu_compute_driver.hh
Normal file
83
src/gpu-compute/gpu_compute_driver.hh
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (c) 2015-2018 Advanced Micro Devices, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* For use for simulation and test purposes only
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
||||
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* Authors: Sooraj Puthoor
|
||||
* Anthony Gutierrez
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* The GPUComputeDriver implements an HSADriver for an HSA AMD GPU
|
||||
* agent. Other GPU devices, or other HSA agents, should not derive
|
||||
* from this class. Instead device-specific implementations of an
|
||||
* HSADriver should be provided for each unique device.
|
||||
*/
|
||||
|
||||
#ifndef __GPU_COMPUTE_GPU_COMPUTE_DRIVER_HH__
|
||||
#define __GPU_COMPUTE_GPU_COMPUTE_DRIVER_HH__
|
||||
|
||||
#include "dev/hsa/hsa_driver.hh"
|
||||
|
||||
struct GPUComputeDriverParams;
|
||||
|
||||
class GPUComputeDriver final : public HSADriver
|
||||
{
|
||||
public:
|
||||
typedef GPUComputeDriverParams Params;
|
||||
GPUComputeDriver(Params *p);
|
||||
int ioctl(ThreadContext *tc, unsigned req, Addr ioc_buf) override;
|
||||
|
||||
private:
|
||||
/**
|
||||
* The aperture (APE) base/limit pairs are set
|
||||
* statically at startup by the real KFD. AMD
|
||||
* x86_64 CPUs only use the areas in the 64b
|
||||
* address space where VA[63:47] == 0x1ffff or
|
||||
* VA[63:47] = 0. These methods generate the APE
|
||||
* base/limit pairs in exactly the same way as
|
||||
* the real KFD does, which ensures these APEs do
|
||||
* not fall into the CPU's address space
|
||||
*
|
||||
* see the macros in the KFD driver in the ROCm
|
||||
* Linux kernel source:
|
||||
*
|
||||
* drivers/gpu/drm/amd/amdkfd/kfd_flat_memory.c
|
||||
*/
|
||||
Addr gpuVmApeBase(int gpuNum) const;
|
||||
Addr gpuVmApeLimit(Addr apeBase) const;
|
||||
Addr scratchApeBase(int gpuNum) const;
|
||||
Addr scratchApeLimit(Addr apeBase) const;
|
||||
Addr ldsApeBase(int gpuNum) const;
|
||||
Addr ldsApeLimit(Addr apeBase) const;
|
||||
};
|
||||
|
||||
#endif // __GPU_COMPUTE_GPU_COMPUTE_DRIVER_HH__
|
||||
Reference in New Issue
Block a user