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;">

                中文字幕在线一区| 精品粉嫩aⅴ一区二区三区四区| 亚洲r级在线视频| 欧美日高清视频| 色哟哟国产精品| 亚洲大型综合色站| 日韩精品综合一本久道在线视频| 热久久免费视频| 中文字幕一区二区在线播放| 99精品热视频| 三级成人在线视频| 欧美国产一区二区在线观看| 日本精品视频一区二区三区| 精品国产91久久久久久久妲己 | 久久国产精品无码网站| 亚洲国产一区二区视频| 日韩片之四级片| 欧美国产一区二区| 亚洲1区2区3区视频| 欧美国产精品v| 自拍偷拍亚洲综合| 337p日本欧洲亚洲大胆精品| 国产精品丝袜久久久久久app| 久久综合九色综合欧美就去吻| 91高清视频在线| 91久久精品日日躁夜夜躁欧美| 成人黄色一级视频| 国产成人免费视频网站| 欧美无砖专区一中文字| 色婷婷国产精品| 成人美女在线观看| 91小视频在线观看| 精品国产污网站| 亚洲综合色区另类av| 亚洲成av人片一区二区梦乃| 国产在线视视频有精品| 69av一区二区三区| 一区二区三区影院| 99久久精品久久久久久清纯| 精品奇米国产一区二区三区| 亚洲成av人片一区二区梦乃| 日本久久精品电影| 色综合咪咪久久| 中文字幕一区二区三区视频| 亚洲一级二级在线| 色综合天天性综合| 自拍偷拍亚洲综合| 三级影片在线观看欧美日韩一区二区 | 99久久免费精品高清特色大片| www.亚洲在线| 欧美男女性生活在线直播观看| 伊人夜夜躁av伊人久久| 日韩精品一区二区三区在线| 日韩一区二区三区四区五区六区 | 欧美日韩日日摸| 日韩有码一区二区三区| 日韩欧美一级特黄在线播放| 国产成人三级在线观看| 一区二区成人在线视频| 日韩欧美色电影| 99re成人精品视频| 开心九九激情九九欧美日韩精美视频电影 | 国产福利不卡视频| 欧美一卡在线观看| 亚洲欧美另类久久久精品| 麻豆精品精品国产自在97香蕉| 国产视频911| 成人免费高清视频在线观看| 五月天一区二区三区| 精品伦理精品一区| 一区二区三区四区激情| 日韩一区二区免费在线观看| 性久久久久久久久| 精品国产一二三| 韩国v欧美v日本v亚洲v| 精品美女在线播放| 国产寡妇亲子伦一区二区| 亚洲欧美另类小说| 国产婷婷色一区二区三区| 97超碰欧美中文字幕| 韩国欧美一区二区| 亚洲一区在线观看网站| 夜夜嗨av一区二区三区中文字幕| 国产ts人妖一区二区| 国产精品久久久久精k8 | 最新成人av在线| 国产精品丝袜一区| 国产精品人人做人人爽人人添| 欧美久久一区二区| 国产伦精品一区二区三区免费| 制服丝袜中文字幕一区| 国产成人夜色高潮福利影视| 亚洲一区二区在线免费看| 欧美久久久久久久久久| 日韩欧美不卡在线观看视频| 日韩午夜电影在线观看| 91精品福利视频| 欧美日韩久久久| 国产精品美女www爽爽爽| 亚洲一区二区三区影院| 美女视频黄a大片欧美| 国产sm精品调教视频网站| 亚洲综合精品久久| 成人黄色软件下载| 日韩美女视频一区二区在线观看| 日韩欧美一级二级三级久久久| 粉嫩一区二区三区在线看| 国产成人精品亚洲午夜麻豆| 国产成人夜色高潮福利影视| 国产99一区视频免费| 91国模大尺度私拍在线视频| 欧美欧美午夜aⅴ在线观看| 777午夜精品视频在线播放| 日韩午夜av一区| 国产视频一区二区在线| 欧美激情一区二区三区全黄| 亚洲精品久久7777| 久久99国内精品| 一本色道久久加勒比精品| 精品国产一区久久| 欧美日韩国产欧美日美国产精品| 日韩电影免费在线看| 蜜桃91丨九色丨蝌蚪91桃色| 欧美日韩成人激情| 精品国产免费久久 | 欧美精品777| 亚洲靠逼com| 99精品在线免费| 久久―日本道色综合久久| 亚洲自拍都市欧美小说| 91麻豆国产自产在线观看| 国产精品福利电影一区二区三区四区| 久久激五月天综合精品| 久久久蜜桃精品| 91一区二区在线| 色久优优欧美色久优优| 亚洲精品中文字幕乱码三区| av不卡在线播放| 午夜精品在线视频一区| 欧美日韩国产成人在线91 | 福利一区在线观看| 国产亚洲综合在线| 国产综合色在线视频区| 99久久精品免费看| 国产精品天美传媒| 99国产一区二区三精品乱码| 亚洲少妇屁股交4| www成人在线观看| 亚洲第一成年网| 久久精品网站免费观看| 韩国av一区二区三区| 国产日产亚洲精品系列| 成人国产精品免费观看| 亚洲成人精品一区| 国产午夜一区二区三区| 欧美精选一区二区| 国产一区二区按摩在线观看| 国产精品理伦片| 欧美亚洲综合色| 国产乱码字幕精品高清av| 亚洲一区二区三区三| 亚洲成人动漫在线免费观看| 国产精品成人网| 亚洲少妇屁股交4| 一区二区三区久久| 亚洲精品国产视频| 中文字幕av一区二区三区高| 国产日韩欧美在线一区| 国产最新精品免费| 天天综合网 天天综合色| 丝袜亚洲另类欧美| 麻豆国产一区二区| 久久国产夜色精品鲁鲁99| 韩国av一区二区三区| 91在线观看高清| 欧美一级生活片| 国产精品视频麻豆| 一区二区三区欧美视频| 日产精品久久久久久久性色| 美女视频黄免费的久久| 国产精品88888| 欧美日韩精品久久久| 91在线观看美女| 日韩视频一区在线观看| 亚洲三级在线播放| 激情欧美一区二区| 色av一区二区| 26uuu成人网一区二区三区| 亚洲精品高清在线观看| 极品少妇xxxx精品少妇偷拍| av成人动漫在线观看| 久久中文娱乐网| 美女视频免费一区| 欧美少妇xxx| 亚洲一级电影视频| 91丨九色porny丨蝌蚪| 国产性天天综合网| 国产精品一二三在| 久久亚洲欧美国产精品乐播| 奇米色一区二区|