mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 21:39:10 -04:00
minor update
This commit is contained in:
parent
6b800f2054
commit
6c56edf65d
9 changed files with 21 additions and 28 deletions
|
@ -194,6 +194,6 @@
|
|||
`define VX_CSR_NUM_THREADS 12'hFC0
|
||||
`define VX_CSR_NUM_WARPS 12'hFC1
|
||||
`define VX_CSR_NUM_CORES 12'hFC2
|
||||
`define VX_CSR_NUM_BARRIERS 12'hFC3
|
||||
`define VX_CSR_LOCAL_MEM_BASE 12'hFC3
|
||||
|
||||
`endif // VX_TYPES_VH
|
||||
|
|
|
@ -182,7 +182,7 @@ import VX_fpu_pkg::*;
|
|||
`VX_CSR_NUM_THREADS: read_data_ro_r = `XLEN'(`NUM_THREADS);
|
||||
`VX_CSR_NUM_WARPS : read_data_ro_r = `XLEN'(`NUM_WARPS);
|
||||
`VX_CSR_NUM_CORES : read_data_ro_r = `XLEN'(`NUM_CORES * `NUM_CLUSTERS);
|
||||
`VX_CSR_NUM_BARRIERS: read_data_ro_r = `XLEN'(`NUM_BARRIERS);
|
||||
`VX_CSR_LOCAL_MEM_BASE: read_data_ro_r = `XLEN'(`LMEM_BASE_ADDR);
|
||||
|
||||
`CSR_READ_64(`VX_CSR_MCYCLE, read_data_ro_r, cycles);
|
||||
|
||||
|
|
|
@ -33,9 +33,8 @@ typedef void* vx_buffer_h;
|
|||
#define VX_CAPS_CACHE_LINE_SIZE 0x4
|
||||
#define VX_CAPS_GLOBAL_MEM_SIZE 0x5
|
||||
#define VX_CAPS_LOCAL_MEM_SIZE 0x6
|
||||
#define VX_CAPS_LOCAL_MEM_ADDR 0x7
|
||||
#define VX_CAPS_ISA_FLAGS 0x8
|
||||
#define VX_CAPS_NUM_BARRIERS 0x9
|
||||
#define VX_CAPS_ISA_FLAGS 0x7
|
||||
#define VX_CAPS_NUM_BARRIERS 0x8
|
||||
|
||||
// device isa flags
|
||||
#define VX_ISA_STD_A (1ull << 0)
|
||||
|
|
|
@ -230,9 +230,6 @@ public:
|
|||
case VX_CAPS_LOCAL_MEM_SIZE:
|
||||
_value = 1ull << ((dev_caps_ >> 48) & 0xff);
|
||||
break;
|
||||
case VX_CAPS_LOCAL_MEM_ADDR:
|
||||
_value = LMEM_BASE_ADDR;
|
||||
break;
|
||||
case VX_CAPS_ISA_FLAGS:
|
||||
_value = isa_caps_;
|
||||
break;
|
||||
|
|
|
@ -77,9 +77,6 @@ public:
|
|||
case VX_CAPS_LOCAL_MEM_SIZE:
|
||||
_value = (1 << LMEM_LOG_SIZE);
|
||||
break;
|
||||
case VX_CAPS_LOCAL_MEM_ADDR:
|
||||
_value = LMEM_BASE_ADDR;
|
||||
break;
|
||||
case VX_CAPS_ISA_FLAGS:
|
||||
_value = ((uint64_t(MISA_EXT))<<32) | ((log2floor(XLEN)-4) << 30) | MISA_STD;
|
||||
break;
|
||||
|
|
|
@ -81,9 +81,6 @@ public:
|
|||
case VX_CAPS_LOCAL_MEM_SIZE:
|
||||
_value = (1 << LMEM_LOG_SIZE);
|
||||
break;
|
||||
case VX_CAPS_LOCAL_MEM_ADDR:
|
||||
_value = LMEM_BASE_ADDR;
|
||||
break;
|
||||
case VX_CAPS_ISA_FLAGS:
|
||||
_value = ((uint64_t(MISA_EXT))<<32) | ((log2floor(XLEN)-4) << 30) | MISA_STD;
|
||||
break;
|
||||
|
|
|
@ -402,9 +402,6 @@ public:
|
|||
case VX_CAPS_LOCAL_MEM_SIZE:
|
||||
_value = 1ull << ((dev_caps_ >> 48) & 0xff);
|
||||
break;
|
||||
case VX_CAPS_LOCAL_MEM_ADDR:
|
||||
_value = LMEM_BASE_ADDR;
|
||||
break;
|
||||
case VX_CAPS_ISA_FLAGS:
|
||||
_value = isa_caps_;
|
||||
break;
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
// Copyright © 2019-2023
|
||||
//
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -22,21 +22,22 @@
|
|||
|
||||
namespace vortex {
|
||||
|
||||
class Arch {
|
||||
class Arch {
|
||||
private:
|
||||
uint16_t num_threads_;
|
||||
uint16_t num_warps_;
|
||||
uint16_t num_cores_;
|
||||
uint16_t num_clusters_;
|
||||
uint16_t num_cores_;
|
||||
uint16_t num_clusters_;
|
||||
uint16_t socket_size_;
|
||||
uint16_t vsize_;
|
||||
uint16_t num_regs_;
|
||||
uint16_t num_csrs_;
|
||||
uint16_t num_barriers_;
|
||||
uint16_t ipdom_size_;
|
||||
|
||||
uint64_t local_mem_base_;
|
||||
|
||||
public:
|
||||
Arch(uint16_t num_threads, uint16_t num_warps, uint16_t num_cores)
|
||||
Arch(uint16_t num_threads, uint16_t num_warps, uint16_t num_cores)
|
||||
: num_threads_(num_threads)
|
||||
, num_warps_(num_warps)
|
||||
, num_cores_(num_cores)
|
||||
|
@ -47,10 +48,11 @@ public:
|
|||
, num_csrs_(4096)
|
||||
, num_barriers_(NUM_BARRIERS)
|
||||
, ipdom_size_((num_threads-1) * 2)
|
||||
, local_mem_base_(LMEM_BASE_ADDR)
|
||||
{}
|
||||
|
||||
uint16_t vsize() const {
|
||||
return vsize_;
|
||||
uint16_t vsize() const {
|
||||
return vsize_;
|
||||
}
|
||||
|
||||
uint16_t num_regs() const {
|
||||
|
@ -65,6 +67,10 @@ public:
|
|||
return num_barriers_;
|
||||
}
|
||||
|
||||
uint64_t local_mem_base() const {
|
||||
return local_mem_base_;
|
||||
}
|
||||
|
||||
uint16_t ipdom_size() const {
|
||||
return ipdom_size_;
|
||||
}
|
||||
|
@ -80,7 +86,7 @@ public:
|
|||
uint16_t num_cores() const {
|
||||
return num_cores_;
|
||||
}
|
||||
|
||||
|
||||
uint16_t num_clusters() const {
|
||||
return num_clusters_;
|
||||
}
|
||||
|
|
|
@ -372,7 +372,7 @@ Word Emulator::get_csr(uint32_t addr, uint32_t tid, uint32_t wid) {
|
|||
case VX_CSR_NUM_THREADS:return arch_.num_threads();
|
||||
case VX_CSR_NUM_WARPS: return arch_.num_warps();
|
||||
case VX_CSR_NUM_CORES: return uint32_t(arch_.num_cores()) * arch_.num_clusters();
|
||||
case VX_CSR_NUM_BARRIERS:return arch_.num_barriers();
|
||||
case VX_CSR_LOCAL_MEM_BASE: return arch_.local_mem_base();
|
||||
case VX_CSR_MSCRATCH: return csr_mscratch_;
|
||||
CSR_READ_64(VX_CSR_MCYCLE, core_perf.cycles);
|
||||
CSR_READ_64(VX_CSR_MINSTRET, core_perf.instrs);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue