首頁

0

探討CUDA的4種記憶體存取方式

[TOC] 本篇文章探討NVIDIA CUDA架構下的記憶體存取方式對程式效能的影響,以下將介紹不同的記憶體存取方法對於不同的Kernel Function的效能影響,目前的CUDA C/C++ API提供了以下記憶體存取方法 Pageable Memory Pinned Memory Zero Copy Unified Memory Access Pageable MemoryPageabl

0

簡易 malloc/free 實作筆記

在C語言當中很常用到 malloc 來動態配置一塊記憶體,透過 malloc 宣告出來的記憶體是位在Heap當中,如下圖所示 因此,實作 malloc 的目標就是把Heap Top的指標往未分配的記憶體區段移動,這部分有很多不同的實作方法,在這裡會提到的是brk與sbrk,其定義如下 int brk(void *addr);void *sbrk(intptr_t x); brk() 將Prog

0

VSCode LiveServer擴充功能造成的WS Reload問題

最近在撰寫前端透過 Websocket 傳輸檔案的系統時,發現後端 ( Java ) 每接收完一個檔案之後都會造成前端的 Reload ,無法連續傳送多個檔案,遇到這個問題時不太清楚為什麼會發生,以下列出我一開始嘗試的解決方法。 起初的解決方法列出這些我嘗試過的方法,給大家一個參考,但這四點不是本文最主要的原因。 WebSocket 後端寫檔時造成 Server Side Blocking ,前

0

透過購物車來了解Cookie的運作方式

在電子商務網站中一定會有購物車這個功能,讓你能夠將喜歡的東西放在裡面,最後再一次結帳,這篇文章將簡單講解為什麼需要有 Cookie 以及前端技術上使用 Cookie 的方法。 Cookie?紀錄你在網頁上的狀態在講解 Cookie 一來之前,先來聊聊 HTTP 這個東西,HTTP 是一種網路通訊協定,主要用來傳輸網頁相關的內容(HTML、圖片、影片…)之類的檔案,在 HTTP 的世界中是沒有狀態可

0

Raspberry Pi 3 設定靜態IP方法

系統環境Raspbian BusterLinux kernel 4.19.57Release date:2019-07-10 設定編輯/etc/dhcpcd.conf檔案 sudo vim /etc/dhcpcd.conf 在該檔案最後面加上 interface eth0# Static IPstatic ip_address=x.x.x.x/24# Routers/Gatewaystati

0

C++分割字串與轉型之方法

C++分割字串與轉型之方法在競程的資料處理上常會用到切割字串與轉型的問題,以下列出了一種切割方式與字串轉整數、整數轉字串的方式 會使用到的Library #include<sstream>// For istringstream, stringstream #include<string>// For string data type #include<ios

0

CHIP8模擬器開發-來寫程式吧

虛擬硬體環境建立根據第一篇文章的CHIP8硬體環境來實作,實作過程需要了解各個資料型態的大小,所以整理了下表供參考 型態 大小 範圍 char 1 byte -128 ~ 127 short 2 bytes -32768 ~ 32767 unsigned char 1 byte 0 ~ 255 unsigned short 2 bytes 0 ~ 65535 建立一

0

CHIP8模擬器開發-指令集

CHIP-8每個指令占2 Bytes並以big-endian的方式存放在記憶體當中,另外有10個額外的指令可加入,但本次筆記並沒有實作。 底下指令集的部分我也不知道為什麼心血來潮想把它翻成中文,建議還是去看原文版可能比較好懂啦(? NNN: 記憶體位址NN、N: 8bits或4bits的常數X and Y: register的名稱(0 ~ F)I: Index register 指令集1. 0N

0

CHIP8模擬器開發-模擬器與CHIP8簡介

模擬器基本概念模擬器主要是讓一台A電腦能夠模擬B電腦上執行的程式,其中B電腦是一款對於A電腦來說完全不同處理器架構的系統,例如我能夠在x86下執行ARM的程式。但畢竟是透過”模擬”出來的,與原電腦中間隔了一層模擬執行的階段,效能當然也就不比原生系統上快速。 電腦怎麼執行指令?電腦的CPU有一套屬於自己的指令集,根據架構的不同,CPU所能接受的指令集也會有所不同,如x86架構與ARM架構的處理器指