当前位置: 首页 > wzjs >正文

php后台网站开发教程上海风险等级最新

php后台网站开发教程,上海风险等级最新,网站建设发展方向,北京百度推广代运营GPU虚拟化实现(五) 章节回顾初步介绍详细介绍核心数据结构核心功能和运作机制初始化显存分配显存释放显存溢出检查显存类型检查查看分配信息代码执行流程假设例子总结章节回顾 在上一章,简单介绍了项目拦截cuda函数的流程,其本质上与拦截nvml函数的流程是一致的,都是首先…

GPU虚拟化实现(五)

  • 章节回顾
  • 初步介绍
  • 详细介绍
    • 核心数据结构
    • 核心功能和运作机制
      • 初始化
      • 显存分配
      • 显存释放
      • 显存溢出检查
      • 显存类型检查
      • 查看分配信息
    • 代码执行流程
    • 假设例子
  • 总结

章节回顾

在上一章,简单介绍了项目拦截cuda函数的流程,其本质上与拦截nvml函数的流程是一致的,都是首先将源函数的地址存储在列表的指针中,当拦截到函数时跳转到自定义实现的函数,需要特殊处理就特殊处理,如不需要转到源函数去处理。在这一章,将会介绍这个项目的allocator模块。

初步介绍

项目中的allocator模块时自定义实现的 CUDA 设备显存分配器,主要负责实际的显存分配、释放、追踪和 OOM 检查。

详细介绍

核心数据结构

分配器的运作依赖于几个关键的数据结构(定义在 allocator.h 中):

  1. allocated_device_memory_struct
struct allocated_device_memory_struct{CUdeviceptr address;                       // 设备显存的指针size_t length;                             // 分配的大小CUcontext ctx;                             // 关联的 CUDA 上下文CUmemGenericAllocationHandle *allocHandle; // 分配句柄
};
typedef struct allocated_device_memory_struct allocated_device_memory;

这个结构体用来存储单块已分配的 CUDA 设备显存的关键信息。
2. allocated_list_structallocated_list_entry_struct

struct allocated_list_entry_struct{allocated_device_memory *entry;;struct allocated_list_entry_struct *next,*prev;
};
typedef struct allocated_list_entry_struct allocated_list_entry;struct allocated_list_struct{allocated_list_entry *head;allocated_list_entry *tail;size_t length;
};
typedef struct allocated_list_struct allocated_list;

allocated_list_entry定义了双向链表中的一个节点。每个节点代表着一块被追踪的设备显存。
allocated_list是一个双向链表,用于存储分配的显存记录。
3. region_struct, region_list_structregion_list_entry_struct(在 allocator.c 这个文件的代码逻辑里,并没有直接使用 region 相关的结构和逻辑)

struct region_struct{size_t start;size_t freemark;size_t freed_map;size_t length;CUcontext ctx;allocated_list *region_allocs;char *bitmap;CUmemGenericAllocationHandle *allocHandle;
};
typedef struct region_struct region;struct region_list_entry_struct{region *entry;struct region_list_entry_struct *next,*prev;
};
typedef struct region_list_entry_struct region_list_entry;struct region_list_struct{region_list_entry   *head;region_list_entry   *tail;size_t length;
};
typedef struct region_list_struct region_list;

大白话解释:
想象 GPU 显存是一整块大蛋糕,为了方便管理,我们先把它分成几块“大蛋糕”(region),每一块大蛋糕都有自己的档案,记录大小、位置、还有哪些部分被切走了。大蛋糕的档案都串在一起(region_list_entry),放在一个总账本里(region_list),让你随时能找到所有大蛋糕的信息。

每块大蛋糕还能再切成很多“小蛋糕”,分给不同的任务用。每块小蛋糕的信息(位置、大小、谁在用)也记录在小纸条上(allocated_device_memory),这些小纸条串成一串(allocated_list_entry),放在一个小账本里(allocated_list)。而每个大蛋糕的档案里,都有一个指向自己小账本的指针(region_allocs),让你知道从这块大蛋糕切出去的小蛋糕有哪些。

核心功能和运作机制

初始化

// allocator.c
void allocator_init(){LOG_DEBUG("Allocator_init\n");device_overallocated = malloc(sizeof(allocated_list));LIST_INIT(device_overallocated);pthread_mutex_init(&mutex,NULL);
}
// allocator.h
#define LIST_INIT(list) {   \list->head=NULL;         \list->tail=NULL;         \list

文章转载自:

http://5ljDuvjs.yqyhr.cn
http://QHf4hZDc.yqyhr.cn
http://muMtXXMe.yqyhr.cn
http://dHxSDidf.yqyhr.cn
http://itJXG2I2.yqyhr.cn
http://k12FjQDD.yqyhr.cn
http://FoTZlVZl.yqyhr.cn
http://x21gVaJS.yqyhr.cn
http://4F1W13lP.yqyhr.cn
http://Mwca2j7p.yqyhr.cn
http://VNHEpHg4.yqyhr.cn
http://MWN4ZIRV.yqyhr.cn
http://W7Rp3yEF.yqyhr.cn
http://lGU2w9rM.yqyhr.cn
http://lmrWOuuX.yqyhr.cn
http://13ODuHqX.yqyhr.cn
http://x8p2L7u0.yqyhr.cn
http://5smWcrbd.yqyhr.cn
http://SFEBV8C3.yqyhr.cn
http://1zLJ7dGF.yqyhr.cn
http://c2VPvMi7.yqyhr.cn
http://SpSLbUvy.yqyhr.cn
http://h7Voqwpo.yqyhr.cn
http://PCiLToSH.yqyhr.cn
http://rqhCSRMf.yqyhr.cn
http://2l59n0N3.yqyhr.cn
http://SBfjdDk7.yqyhr.cn
http://9T3Hc501.yqyhr.cn
http://sA4zB8dz.yqyhr.cn
http://67JM9yaW.yqyhr.cn
http://www.dtcms.com/wzjs/638682.html

相关文章:

  • 太原建设银行保安招聘网站人个做外贸用什么网站好
  • 书画网站 建设方案最全磁力搜索引擎
  • ASP网站开发步骤与过程达美网站建设
  • wordpress文章无法置顶重庆seo推广外包
  • 网站如果实现微信支付网站设计稿一般尺寸
  • 青岛城市建设集团网站网站开发招聘职位
  • 成都地区网站建设建设工程类招标信息发布网站
  • 网站建设国内排行单页面中添加wordpress的评论
  • 郑州网站建设哪家便宜如何网站点击率
  • 如何进行企业营销型网站建设wordpress主题移植
  • 做教育招生网站建立网站的基本条件
  • 网站建设哪家质量好百度客户端下载安装
  • 输入法网站设计网络广告案例以及分析
  • 怎么修改网站后台权限郑州网站设计的公司
  • 为什么网站开发这么便宜房产网站怎么推广
  • 制作网站电话长治在网络做推广
  • 网站建设全部代码网站建设分为哪几部分
  • 网站建设创作思路怎么写手机网站制作 尺寸
  • 制作网站工具做网站创业
  • 企业网站策划方案模板杭州十大互联网公司
  • 私人诊所网站源码给客户做网站需要提供
  • phpmysql做网站自媒体运营主要做什么
  • 网站开发与设计实训心得商务网站建设实验记录
  • 深圳南山区住房和建设局网站自己做网站练手
  • 做网站运营需要学什么软件网站 优化 教程
  • 站长工具a级做信息安全的网站
  • 比较厉害的网站制作公司工商管理系统官网
  • 帮公司做网站怎么找苏州哪个公司做门户网站
  • 江苏seo哪家好seo的方式包括
  • 网站设计导航栏怎么做家庭电脑可以做网站吗