Mulberry's Blog

沉淀自我

0x00 : 前言

本人接触任务调度相关领域没多久,之前主要做的还是图形学相关的应用研发,机缘巧合才开始接触的任务调度。网上大部分的任务调度方案动辄涉及海量任务,超高并发,但是很多早期的多任务处理需求,没有条件(这个条件指的是人和机器)也没有必要(这个必要指的是需求量的大小)上这些方案。随着项目需求的持续迭代,技术规模才逐渐变得庞大,技术方案也更加成熟。一般来说技术方案从稚嫩到成熟,并不是一蹴而就的(当然如果研发很有经验,可能是可以直接一步到位的)而且也很少有人记录分享这种技术随业务进化的过程。这段时间自己摸索花了不少时间,希望能记录下来,避免后续大家踩坑。

阅读全文 »

0x00 : 前言

上一篇文章CUDA学习系列(2) | 运行篇主要介绍了CUDA的Thread Hierarchy,本文则介绍CUDA另一个重要特性Memory Hierarchy,意思是CUDA Memory有很多种类,这些种类可以根据层次进行划分。事实上,Thread Hierarchy和Memory Hierarchy中的层次性讲的是同一个东西,本质上都是由硬件的层次性决定的。除了显存的层次性外,显存中不同类型的Memory也是眼花缭乱。针对不同的情况选择不同的Memory,会对CUDA的运行有巨大影响。

阅读全文 »

0x00 : 前言

上一篇主要学习了CUDA编译链接相关知识CUDA学习系列(1) | 编译链接篇。了解编译链接相关知识可以解决很多CUDA编译链接过程中的疑难杂症,比如CUDA程序一启动就crash很有可能就是编译时候Real Architecture版本指定错误。当然,要真正提升CUDA程序的性能,就需要对CUDA本身的运行机制有所了解。顺便提及一下,CUDA有两个非常重要的特性,一个是Thread Hierarchy,主要是说CUDA运行时,其线程是如何分层次执行的,另一个是Memory Hierarchy,主要说CUDA显存是如何分层次进行分配和管理的。这篇文章主要阐述的是CUDA运行机制,也就是CUDA Thread Hierarchy,至于Memory Hierarchy则放在下一篇CUDA学习系列(3) | 显存篇进行详细介绍。

阅读全文 »

0x00 : 前言

CUDA的编译链接其实只需要看官方文档cuda-compiler-driver-nvcc即可。本文主要是在此官方文档的基础上,对其内容进行了补充说明,并增加了一些我个人的理解。

官方文档中总共有四张图片,我个人认为只要理解透了这四张图片,对CUDA编译链接的理解基本上在日常开发中够用了。下面我会结合这四张图片详细谈谈我对它们的理解。

阅读全文 »
0%