deepx APU&AIspace,实现deepx的中层(调度与插件化指令替换)。 #93
miaobyte
announced in
Announcements
Replies: 1 comment
-
|
进一步设计 aispace变更为多func的子三维空间的设计,每个子三维空间存放着一个func,func内的三维空间是自己的程序三维栈 func[y,x,z],从而实现func的多级执行。 当然,aispace可以存储全局 当aispace本质上都是kv索引全局的,只要func内的指令知道其它数据的key(地址[y,x])都可以访问。 apu从程序入口开始解释,也就是func_main:0,0的指令,然后依次向func_main:1,0。。。func_main:2,0执行。遭遇return指令时,返回上一级func的call位置。 aispace遵循y轴依赖串行,x轴为并行,z轴为参数轴的原则。如果func_main:1,0右侧还有func_main:1,1.。。func_main:1,2等,那么这几个指令会由apu的多个线程并行执行。全部执行完毕后才会执行下一个func_main:2,0 apu遇到连续的tensor指令,会交给tensorapu去连续执行,采用cudastream实现计算通信重叠。直到遇到非tensor的判断指令会切换apu执行 |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
程序=数据结构+数据+函数
我希望为deepx的ai程序,设计抽象的程序空间。模糊cpu、gpu、内存、显存的传统分布式的空间计算边界,重新设计统一架构的apu(软件解释执行+扩展tensor加速的AI 处理器)、统一ai内存空间AIspace。
AIspace内存系统:
1.我打算设计一套内存空间AIspace,以存放数据结构和数据。基于kv系统索引存储,kv系统也可以逻辑上实现一维的逻辑内存空间。
2.AIspace需要可以存储,还需要消息通知机制(可能基于redis,或其它)。
3.另外AIspace,对一些基础的串类型,只存放其元数据,而串的数组则存放在其它拓展位置,如内存、显存、甚至文件系统。
4.程序线程的指令,在AIspace上,也表现为堆栈划分。
访问(读写)AIspace,依次执行AIspace对应位置的指令。(对应deepx的ir)
3.apu扩展加速计算系统
对一些tensor计算指令,交由专门的计算执行器负责tensor的计算任务,完成计算后会通过AIspace的消息通知APU,由具体的simd、cuda加速程序实现。(deepx实际上已经实现了)
Beta Was this translation helpful? Give feedback.
All reactions