99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

合肥生活安徽新聞合肥交通合肥房產(chǎn)生活服務合肥教育合肥招聘合肥旅游文化藝術(shù)合肥美食合肥地圖合肥社保合肥醫(yī)院企業(yè)服務合肥法律

CSC3050代做、C++程序語言代寫
CSC3050代做、C++程序語言代寫

時間:2024-11-16  來源:合肥網(wǎng)hfw.cc  作者:hfw.cc 我要糾錯



CSC3050 Project 3: RISC-V Simulator with RVV
1 Background
RISC-V, an open standard instruction set architecture (ISA), has rapidly become a
pivotal force in academic research and industrial development due to its flexibility
and open-source nature. Unlike proprietary ISAs, RISC-V offers the freedom for
developers to customize and extend the architecture, making it an ideal platform
for innovation in research, education, and the design of specialized hardware. One
of its most impactful extensions is the RISC-V Vector Extension (RVV), which
introduces efficient vector processing capabilities—a cornerstone of modern high performance computing. This is especially critical for applications like machine
learning, cryptography, and scientific simulations, where parallel data processing is
essential for improving computational speed and efficiency.
In this project, you are tasked with extending the QTRVSim RISC-V simulator
to support vector operations by implementing some of the RVV instructions.
After reviewing the number of cycles, you will get a feeling of how this is faster
than conducting element-wise operations.
Start early, this project can be time-consuming if you are not familiar with
simulators.
2 QTRVSim
QTRVSim is a RISC-V CPU simulator for education, where you can try its online
version on this link. Just in case you want to try different instructions, you can refer
to this page: RISC-V Instruction Set Specifications. A helpful video about using
QTRVSim can be found on Youtube
After familiarizing yourself with the QtRVSim manual, you can begin planning how
to integrate RVV instructions into the existing implementation. The simulator’s
source code, written in C++ and including both the core simulation functions and
graphical user interfaces (GUIs), can be found in the repository at this link. To test
your modifications, QtRVSim offers two methods for simulating assembly code: GUI
or command-line prompts.
Note: For this project, you are not required to modify any of the GUI components.
Your primary goal is to ensure that the RVV instructions function correctly when
using command-line prompts. Another objective in this project is to save the number
of cycles; the smaller the number you get, the better the score you get.
1
2.1 How to run
We give the example of running QTRVSim on Ubuntu with the terminal. You can
follow these steps:
1. We assume you already have the necessary packages for compiling cpp. If
not, you can easily find tutorial for them on the internet.
2. Install QT6 (QT5 does not work in most cases) with sudo apt install qt6-
base-dev. You might need sudo apt update first, and make sure you are
installing QT6, not QT5.
3. Download QTRVSim from the given repository.
4. Make a new directory for building files (mkdir build; cd build)
5. cmake -DCMAKE BUILD TYPE=Release /path/to/qtrvsim
6. make -j X, where X is the number of threads you want to use
7. If everything goes correctly, you can use ./target/qtrvsim cli –asm XXXXX.S
to run your .S file.
8. Via ./target/qtrvsim cli –help, you can check all helpful arguments.
3 RVV Instructions
In this assignment, you are required to implement the following RVV instructions
(suppose max vector size is **):
1. vsetvl rd, rs1, rs2: sets the length register vl to rs1 and rd, also sets the
register holding the type of vector to rs2 (8/16/**).
2. vadd.vv vd, vs2, vs1: adds two vectors vs2 and vs1, and stores the result
in vd
3. vadd.vx vd, vs2, rs1: adds rs1 to each element of vector vs2, and stores
the result in vd
4. vadd.vi vd, vs2, imm: adds the scalar value imm to each element of vector
vs2, and stores the result in vd
5. vmul.vv vd, vs2, vs1: conducts dot production on two vectors vs2 and vs1,
and stores the result in vd
6. vlw.v vd, (rs1): loads elements stored starting at rs1 into vector vd. The
length to load is dependent on the length stored at vl and the unit length
specified earlier.
7. vsw.v vs3, (rs1): stores vector elements of vs3 into memory starting at rs1.
The length to load is dependent on the length stored at vl and the unit length
specified earlier.
2
Figure 1: Matrix stored as vector
The whole point of this project is that, through the implementation, you will
understand why are vector operations is much faster than manipulate each ele ment individually. For example, writing 100 elements into memory will require 100
individual store instructions if in an element-wise manner. However, using vector
write, you only need to do one vector store instruction.
A detailed explanation of RVV instructions can be found at this manual. Reminder:
Do not forget to update vl when switching to operate on vectors with different
lengths.
4 Matrix Multiplication
After implementing and testing the aforementioned functionalities, you are required
to write a .S file that conduct matrix to matrix multiplication.
Ci,j =
X Ai,kBk,j
k
The actual matrix will be stored as a vector in memory, as shown in Figure 1. In
order to conduct vector multiplication, the size of the matrix n × m will be given.
We require you to generate two random matrices with sizes of 20 × 46 and
46 × 50 where elements can be of your own choice.
5 Tricks
There are several tricks you can apply to reduce cycle counts.
1. Reduction (required): This is similar to calculate the summation of a
vector, but more efficiently. The basic requirement is that you conduct this
summation on each element one-by-one, which leads to excessive cycles.
Another approach is to do binary split, i.e. repeatedly decompose the a vector
of size n into 2 vectors of size n//2, and then conduct vadd. There are also
other trick for conducting reduction, and you can explore any of them.
3
Possible reduction:
(a) scalar loop
(b) vector shift
(c) reduction instruction
(d) ...
2. Chaining (Extra credit): When conducting vector operations, it is not nec essary to wait for the entire instruction to complete. As shown in Figure 2, it
is possible to conduct VADD on the first element, right after obtaining the
first element of VMUL. A much better illustration can be found at Prof.Hsu’s
slides at this link.
Figure 2: chaining
6 Instruction on Implementation
The code involved in QTRVSim is quite complicated. Luckily, you only need to
focus on few script files.
1. src/machine/instruction.cpp: Edit this file to add new instructions. The
boxed fields are:
• instruction name
• instruction enum type (you can edit this by yourself; no need to follow
the example)
• input types (you can go through instruction.cpp to see what char is for
what type)
• machine code (hexadecimal)
• mask for effective bits for instruction (hexadecimal)
• customize flags (you can edit this by yourself; no need to follow the
example)
2. src/machine/core.cpp: Main pipeline of the simulator. You can find fetch,
decode, execute, writeback, memory in it, and edit these codes for your con venience.
4
3. src/machine/execute/alu.cpp: specify what to do for each alu operation.
You can create/edit these codes for your own convenience.
Other files might also interest you, but we will not go through all of them here.
Feel free to modify any codes as long as they work.
Notice: you need to use state.cycle count++; in core.cpp when needed.
Notice2: If you want to use v1,v2... as the vector register, you can modify
parse reg from string() in instruction.cpp.
Notice3: You might want to check dt.num rt, dt.num rd, dt.num rs for specific
register indexing.
Notice4: The largest vector register length is **. Load instruction will have a
memory latency of **. Besides, the cycles for multiplication is 4. (This means that,
to load a vector of length 10, the total cycles will be 1 + 1 + ** + 10 + 1 + 1 = 46)
7 Grading Criteria
The maximum score you can get for this lab is 100 points. We will first exam ine the correctness of your outputs to test cases. Since hard-coding each opera tion is fairly easy in C++, we will check the execution information, such as the
number of cycles, and content in memories/registers. Using of ChatGPT to im prove writing/generate codes/provide ideas is allowed and highly-recommended
as ChatGPT has become one of the best productivity tools.
Conducting ”higher-level” reduction or finishing the task with less number of cycles
will be granted with extra credit.
You are also required to compose a report, where you should show the results
of your test case executions. Besides you also need to show the total number of
cycles and explain where those cycles come from. (few sentences, no need to be
super specific.)
The deadline of this project is 23:59, Tuesday, 2024/11/19. For each day after
the deadline, 10 points will be deducted from your final score up to 30 points, after
which you will get 0 points.
Besides, if anyone is interested in developing with QT, you are more than welcome
to implement GUI support for RVV instruction. If done properly, you will earn extra
credits, and might contribute to future contents of this class.
Feel free to ask questions if you find anything confusing.
5
8 Submission
You should make sure your code compiles and runs. Then, it should be compressed
into a .zip file and submitted to BlackBoard. Any necessary instructions to
compile and run your code should also be documented and included. Finally, you are
also required to include a report containing the results of your test case execution.



請加QQ:99515681  郵箱:99515681@qq.com   WX:codinghelp






 

掃一掃在手機打開當前頁
  • 上一篇:ENGG1110代做、R編程語言代寫
  • 下一篇:代寫CCIT4020、代做python語言編程
  • 無相關(guān)信息
    合肥生活資訊

    合肥圖文信息
    急尋熱仿真分析?代做熱仿真服務+熱設計優(yōu)化
    急尋熱仿真分析?代做熱仿真服務+熱設計優(yōu)化
    出評 開團工具
    出評 開團工具
    挖掘機濾芯提升發(fā)動機性能
    挖掘機濾芯提升發(fā)動機性能
    海信羅馬假日洗衣機亮相AWE  復古美學與現(xiàn)代科技完美結(jié)合
    海信羅馬假日洗衣機亮相AWE 復古美學與現(xiàn)代
    合肥機場巴士4號線
    合肥機場巴士4號線
    合肥機場巴士3號線
    合肥機場巴士3號線
    合肥機場巴士2號線
    合肥機場巴士2號線
    合肥機場巴士1號線
    合肥機場巴士1號線
  • 短信驗證碼 豆包 幣安下載 AI生圖 目錄網(wǎng)

    關(guān)于我們 | 打賞支持 | 廣告服務 | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責聲明 | 幫助中心 | 友情鏈接 |

    Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
    ICP備06013414號-3 公安備 42010502001045

    99爱在线视频这里只有精品_窝窝午夜看片成人精品_日韩精品久久久毛片一区二区_亚洲一区二区久久

          9000px;">

                一区二区不卡在线播放 | 国产一区高清在线| 99久久国产综合精品麻豆| 日韩精品一区在线| 亚洲第一激情av| 在线免费不卡视频| 亚洲动漫第一页| 欧美日韩国产系列| 亚洲电影在线免费观看| 国产精选一区二区三区| 精品免费国产二区三区| 麻豆精品视频在线观看免费| 欧美精品久久99| 日韩电影免费在线观看网站| 欧美精品三级在线观看| 日韩—二三区免费观看av| 欧美久久高跟鞋激| 视频一区二区欧美| 7777精品伊人久久久大香线蕉超级流畅 | 成人97人人超碰人人99| 国产精品免费久久久久| 91在线你懂得| 亚洲最大成人综合| 91精品国产综合久久小美女| 久久草av在线| 亚洲欧洲成人av每日更新| 免费观看久久久4p| 国产日韩欧美在线一区| 色综合久久久久综合体桃花网| 欧美极品xxx| 色婷婷av一区二区三区软件| 亚洲成人资源在线| 精品国产乱码久久久久久闺蜜| 国产成人在线视频网址| 一区二区在线看| 日韩精品资源二区在线| eeuss鲁片一区二区三区| 久久久亚洲精品石原莉奈| aaa欧美大片| 免费在线成人网| 中文字幕日韩一区| 精品国产乱码久久久久久老虎| 波多野结衣精品在线| 五月综合激情日本mⅴ| 国产日韩欧美亚洲| 欧美吞精做爰啪啪高潮| 国产精品538一区二区在线| 亚洲一区二区三区国产| 欧美裸体bbwbbwbbw| 国产69精品久久久久毛片| 午夜在线成人av| 国产精品区一区二区三| 91精品免费在线| 在线精品亚洲一区二区不卡| 国产在线日韩欧美| 亚洲aⅴ怡春院| 中文字幕视频一区二区三区久| 欧美一区二区精品久久911| 成人午夜私人影院| 国内精品免费在线观看| 日韩国产欧美三级| 亚洲国产综合色| 国产精品成人网| 中文字幕免费在线观看视频一区| 色婷婷久久99综合精品jk白丝| 国产精品一区二区三区乱码 | 久久久久亚洲蜜桃| 5858s免费视频成人| 91日韩精品一区| 91丨porny丨中文| 成人性生交大片免费看在线播放 | 欧美体内she精高潮| 成人激情黄色小说| 日韩av电影免费观看高清完整版 | 日韩高清一级片| 亚洲国产毛片aaaaa无费看| 中文字幕日韩一区| 国产精品久久久99| 国产精品嫩草久久久久| 欧美激情综合在线| 国产精品女人毛片| 欧美va亚洲va在线观看蝴蝶网| 波多野结衣亚洲| 丁香婷婷综合五月| 成人午夜电影久久影院| 91视频www| 欧美调教femdomvk| 91精品国产综合久久精品性色| 欧美日韩免费观看一区二区三区 | 一区二区三区四区在线| 亚洲成人综合网站| ㊣最新国产の精品bt伙计久久| 国产精品嫩草久久久久| 国产精品视频一二三区| 亚洲丝袜制服诱惑| 一片黄亚洲嫩模| 裸体歌舞表演一区二区| 精品亚洲欧美一区| 麻豆视频观看网址久久| 国产老肥熟一区二区三区| caoporn国产精品| 欧美日韩在线播| 久久综合色婷婷| 亚洲欧洲性图库| 午夜精品久久久久久久| 激情久久五月天| 北岛玲一区二区三区四区| 欧美在线观看视频一区二区三区| 欧美午夜精品一区| 精品国产髙清在线看国产毛片| 久久综合久久综合久久综合| 国产精品久久毛片a| 洋洋av久久久久久久一区| 日韩精品欧美精品| 99久久婷婷国产综合精品电影| 欧美人妇做爰xxxⅹ性高电影| 日韩免费福利电影在线观看| 国产精品国产自产拍高清av王其| 亚洲高清在线精品| 国产成人精品免费网站| 国模无码大尺度一区二区三区| 91丨porny丨中文| 久久久精品日韩欧美| 午夜精品久久一牛影视| www..com久久爱| 亚洲精品一区二区三区四区高清| 一区二区三区中文字幕在线观看| 日韩专区在线视频| 99久久精品免费看国产| 日韩精品一区在线| 午夜亚洲国产au精品一区二区| www.99精品| 国产视频一区在线播放| 亚洲日本韩国一区| 国产激情一区二区三区| 欧美r级在线观看| 男男成人高潮片免费网站| 欧美日韩综合在线| 亚洲国产毛片aaaaa无费看 | 亚洲美女视频一区| 色欧美日韩亚洲| 日韩av一二三| 久久九九影视网| 91在线视频免费观看| 一区二区三区四区中文字幕| 欧美情侣在线播放| 国产九色sp调教91| 亚洲欧美国产高清| 日韩精品中午字幕| 色八戒一区二区三区| 美女爽到高潮91| 国产精品久久久久一区| 欧美视频在线一区| 国模少妇一区二区三区| 亚洲美女偷拍久久| 久久综合久色欧美综合狠狠| 91蜜桃网址入口| 久久99久久99精品免视看婷婷 | 国产精品一区二区三区四区| 18欧美乱大交hd1984| 欧美日韩亚洲丝袜制服| 国产精品一区专区| 午夜成人在线视频| 亚洲色图欧美在线| 久久婷婷色综合| 欧美日韩在线三级| 国产传媒日韩欧美成人| 亚洲一区二区在线免费看| 久久综合狠狠综合久久综合88 | 亚洲精品一区二区三区精华液| 色综合久久天天综合网| 韩国女主播成人在线观看| 一区二区三区不卡在线观看| wwww国产精品欧美| 日韩欧美不卡在线观看视频| 91在线无精精品入口| 国产精品一区在线观看你懂的| 丝袜亚洲另类欧美综合| 亚洲女与黑人做爰| 中文字幕av在线一区二区三区| 日韩三级精品电影久久久| 欧美午夜不卡视频| 97se亚洲国产综合自在线不卡| 久久激情五月婷婷| 五月婷婷欧美视频| 亚洲一区二区美女| 亚洲欧美日韩精品久久久久| 国产精品美女一区二区| 国产日产欧美精品一区二区三区| 日韩一区二区三区在线观看| 欧美日韩一区二区三区视频 | 精品国产制服丝袜高跟| 91精品国产福利| 欧美精品九九99久久| 欧美日韩一区在线| 欧美吻胸吃奶大尺度电影| 欧洲一区二区av| 精品视频一区 二区 三区| 欧美在线免费观看亚洲| 欧美日韩视频在线第一区|