0
A
답변
1
치즐은 행렬 연산을 지원하지 않습니다. 이러한 작업을 구현하는 하드웨어 생성기를 작성하기위한 DSL입니다. 특수 수학 하드웨어 생성기의 예는 다음을 참조하십시오. Hwacha: A hardware vector unit 및 DspTools: a set of math tools
0
예, 벡터를 사용하여 Chisel에서 행렬 연산을 수행 할 수 있습니다. 내가 생각해 낸 코드는 아래에 있습니다 (입력 행렬은 3x5 및 5x2 크기입니다).
package matrixmult
import chisel3._
import chisel3.iotesters.{PeekPokeTester, Driver}
import scala.collection.mutable.ArrayBuffer
class MatMult extends Module {
val io = IO(new Bundle {
val matA = Input(Vec(15, UInt(32.W)))
val matB = Input(Vec(10, UInt(32.W)))
val load = Input(Bool())
val matC = Output(Vec(6, UInt(32.W)))
val valid = Output(Bool())
})
var sum = UInt(32.W)
val matC = new ArrayBuffer[UInt]()
for(i <- 0 until 6) {
matC += 0.asUInt(32.W)
}
when (io.load) {
for(i <- 0 until 3) {
for(j <- 0 until 2) {
sum = 0.asUInt(32.W)
for(k <- 0 until 5)
{
sum = sum + matA(i*5+k)*io.matB(k*2+j)
}
matC(i*2 + j) = sum
}
}
io.valid := true.B
} .otherwise {
io.valid := false.B
}
val outputMat = Vec(matC)
io.matC := outputMat
}
관련 문제
- 1. ROW에서 행렬 행렬 연산
- 2. 루프가없는 Matlab 행렬 연산
- 3. 루비 행렬 연산
- 4. 하스켈의 행렬 연산
- 5. MATLAB 행렬 연산
- 6. sympy의 행렬 연산 오류
- 7. 자바 행렬 연산, 병렬 콜트 행렬 - 행렬 곱셈
- 8. 행렬 열에 대한 논리 연산.
- 9. Sympy 복합 행렬 반전/연산
- 10. QVM을 향상시키는 OpenGL 행렬 연산
- 11. R의 행렬 연산 : 병렬화, 희소 연산, GPU 계산
- 12. Chisel의 구문 정보
- 13. Chisel의 ## 식은 무엇을 의미합니까?
- 14. Chisel의 전동 연산자
- 15. CUBLAS에서 매우 느린 행렬 전치 연산
- 16. 카츠 유사성 - 행렬/그래프 연산 (JAVA + JUNG)
- 17. 요소 별 행렬 연산 Google Go?
- 18. 행렬 연산 코드에 대한 모범 사례
- 19. 1-D 배열을 사용한 행렬 연산
- 20. 파이썬에서 거대한 행렬을 사용하는 행렬 연산
- 21. Python/Numpy에서 여러 행렬 연산 최적화
- 22. Vectorize Matlab의 행렬 및 벡터 연산
- 23. 팬더 데이터 프레임 행을 사용한 행렬 연산
- 24. OpenGL 좌표계 변경 방법 + [행렬 연산]
- 25. 일부 행렬 연산 및 데이터 추출
- 26. Chisel의 레지스터 Vecs 생성 방법
- 27. 2 차원 배열의 C++에서의 빠르고 쉬운 행렬 연산
- 28. Matlab에서 C++까지 고유 행렬 연산 - 벡터 정규화
- 29. Alglib (덧셈, 곱하기)를 사용한 벡터 및 행렬 기본 연산
- 30. data.table을 사용하여 행렬 연산 및 구성 요소 별 추가