论文部分内容阅读
逼真地仿真大规模生物神经网络系统对于生物神经系统及类脑智能等领域的研究都有重要的意义。然而,由于生物神经网络具有大量异质神经元、复杂的突触动力学特性、错综复杂的网络连接拓扑等特性,给生物神经网络模型的逼真仿真计算带来了极大的挑战。本文针对生物神经网络仿真算法的两个重要问题进行研究:(1)如何提出新的突触电流计算模型,有效降低突触电流计算的资源消耗(突触的数量远大于神经元的数量,因此突触电流的计算主导了网络仿真计算的计算量);(2)如何有效增强生物神经网络海量状态之间的计算独立性,增强算法的并行性能。本文主要进行了以下四点创新工作。
(1)提出“虚拟突触”概念模型,实现了与突触前神经元状态相关的突触状态变量(如电导系数)的计算从突触电流计算中的分离,基于虚拟突触提出了新的时钟驱动串行算法,避免了传统突触电流计算算法中与突触前神经元状态相关的突触状态变量(如电导系数)的重复计算。
深入分析了突触动力学特性,结合与突触前神经元状态相关的突触状态(如电导系数)的计算特点以及传统突触电流计算模式,提出了“虚拟突触”概念模型以及二维循环数组的模型存储结构,实现了与突触前神经元状态相关的突触状态变量(如电导系数)的计算从突触电流计算中分离,避免了传统算法突触电流计算中与突触前神经元状态相关的突触状态变量(如电导系数)的重复计算,降低了网络中突触电流计算的资源消耗。基于提出的虚拟突触概念模型,分别针对基于电导型突触模型和离子通道动力学突触模型的生物神经网络提出了两个新的时钟驱动算法,仿真实验表明了基于虚拟突触的新的时钟驱动算法有效减少了仿真时间和存储空间等计算资源,性能明显优于传统时钟驱动算法。
(2)提出了基于虚拟突触的时钟驱动大规模神经网络并行仿真算法。
由于在基于虚拟突触的时钟驱动串行算法中,由突触前神经元状态决定的突触相关变量计算(如电导系数)从突触电流计算过程中分离出来,新的突触电流计算模式增强了单条突触电流计算所需各类数据之间的独立性,降低了各个神经元状态计算的耦合度,有利于设计大规模生物神经网络细粒度数据集时钟驱动并行仿真算法。因此,按照GPU并行架构体系,针对包含电导型突触和离子通道型突触的生物神经网络的计算特点,分别采用神经元级、神经元-突触级等并行化策略,提出了两个基于虚拟突触的时钟驱动大规模神经网络并行仿真算法。利用CUDA 技术,在 GPU 上实现了基于虚拟突触的时钟驱动大规模神经网络算法的并行仿真实验,实验表明,基于虚拟突触的时钟驱动并行算法具有高效并行性能。
(3)基于虚拟突触设计了新的事件处理机制,提出了时钟事件混合驱动算法(虚拟突触-时钟事件混合驱动算法),即包含共同衰减(时钟驱动)和局部修正(事件驱动)两个过程的突触电流计算新算法。
虚拟突触的提出,降低了传统突触电流计算模式中的单条突触电流的计算资源消耗,进一步,为了降低神经元(如神经元A)对所有突触电流进行逐条累加的计算资源消耗,考虑到在很短的时钟步内,网络中没有任何放电信号到达神经元A的概率非常高的现象,首先假设单位时钟步神经元A没有收到任何突触传来的放电信号,基于此假设,提出了神经元 A 的所有突触电流共同衰减的计算思想,避免了对神经元A的所有突触电流进行逐条累加的过程,减少了大规模神经网络时钟驱动算法中突触电流累加过程的计算量。接着,针对神经元A在单位时钟步接收到的放电事件,根据突触电流数值计算模型,对上述突触电流共同衰减计算模型进行修正,即推导出放电事件触发的突触电流的局部修正模型,并采用二维循环数组数据结构,设计了一种新的事件处理机制,实现了放电事件触发的神经元A的突触总电流的快速有效局部修正。算法性能的理论分析和实验结果都表明本文提出的基于虚拟突触的时钟事件混合驱动算法避免了传统算法中的突触电流的累加计算过程,优化了突触电流计算模式,有效降低突触电流计算的资源消耗,其计算复杂度远小于传统时钟驱动算法计算复杂度,其仿真速度和性能远优于传统时钟驱动算法仿真性能。
(4)提出了基于虚拟突触-时钟事件混合驱动算法的面向具有功能柱结构的大规模神经网络的并行仿真算法。
首先,面向大脑皮层的功能柱状网络结构,为网络中的突触设计了链表型数据结构,提出基于虚拟突触-时钟事件混合驱动算法的串行仿真算法;接着,为了并行化时钟事件混合驱动算法,针对新的事件处理机制特性,在放电事件触发的突触级电导并行化修正过程中,设计单条突触电导修正量的数组型中间变量,避免了电导并行化修正过程的原子操作。最后,结合CUDA的动态并行(Dynamic Parallelism)技术,设计了新的神经元-突触级并行化策略,提出了基于虚拟突触-时钟事件混合驱动算法的面向具有功能柱结构的大规模神经网络的并行仿真算法。实验结果表明,新的并行算法对功能柱结构的脑皮层神经网络系统具有快速仿真能力,以及具有效率高、实用性广的特点。
(1)提出“虚拟突触”概念模型,实现了与突触前神经元状态相关的突触状态变量(如电导系数)的计算从突触电流计算中的分离,基于虚拟突触提出了新的时钟驱动串行算法,避免了传统突触电流计算算法中与突触前神经元状态相关的突触状态变量(如电导系数)的重复计算。
深入分析了突触动力学特性,结合与突触前神经元状态相关的突触状态(如电导系数)的计算特点以及传统突触电流计算模式,提出了“虚拟突触”概念模型以及二维循环数组的模型存储结构,实现了与突触前神经元状态相关的突触状态变量(如电导系数)的计算从突触电流计算中分离,避免了传统算法突触电流计算中与突触前神经元状态相关的突触状态变量(如电导系数)的重复计算,降低了网络中突触电流计算的资源消耗。基于提出的虚拟突触概念模型,分别针对基于电导型突触模型和离子通道动力学突触模型的生物神经网络提出了两个新的时钟驱动算法,仿真实验表明了基于虚拟突触的新的时钟驱动算法有效减少了仿真时间和存储空间等计算资源,性能明显优于传统时钟驱动算法。
(2)提出了基于虚拟突触的时钟驱动大规模神经网络并行仿真算法。
由于在基于虚拟突触的时钟驱动串行算法中,由突触前神经元状态决定的突触相关变量计算(如电导系数)从突触电流计算过程中分离出来,新的突触电流计算模式增强了单条突触电流计算所需各类数据之间的独立性,降低了各个神经元状态计算的耦合度,有利于设计大规模生物神经网络细粒度数据集时钟驱动并行仿真算法。因此,按照GPU并行架构体系,针对包含电导型突触和离子通道型突触的生物神经网络的计算特点,分别采用神经元级、神经元-突触级等并行化策略,提出了两个基于虚拟突触的时钟驱动大规模神经网络并行仿真算法。利用CUDA 技术,在 GPU 上实现了基于虚拟突触的时钟驱动大规模神经网络算法的并行仿真实验,实验表明,基于虚拟突触的时钟驱动并行算法具有高效并行性能。
(3)基于虚拟突触设计了新的事件处理机制,提出了时钟事件混合驱动算法(虚拟突触-时钟事件混合驱动算法),即包含共同衰减(时钟驱动)和局部修正(事件驱动)两个过程的突触电流计算新算法。
虚拟突触的提出,降低了传统突触电流计算模式中的单条突触电流的计算资源消耗,进一步,为了降低神经元(如神经元A)对所有突触电流进行逐条累加的计算资源消耗,考虑到在很短的时钟步内,网络中没有任何放电信号到达神经元A的概率非常高的现象,首先假设单位时钟步神经元A没有收到任何突触传来的放电信号,基于此假设,提出了神经元 A 的所有突触电流共同衰减的计算思想,避免了对神经元A的所有突触电流进行逐条累加的过程,减少了大规模神经网络时钟驱动算法中突触电流累加过程的计算量。接着,针对神经元A在单位时钟步接收到的放电事件,根据突触电流数值计算模型,对上述突触电流共同衰减计算模型进行修正,即推导出放电事件触发的突触电流的局部修正模型,并采用二维循环数组数据结构,设计了一种新的事件处理机制,实现了放电事件触发的神经元A的突触总电流的快速有效局部修正。算法性能的理论分析和实验结果都表明本文提出的基于虚拟突触的时钟事件混合驱动算法避免了传统算法中的突触电流的累加计算过程,优化了突触电流计算模式,有效降低突触电流计算的资源消耗,其计算复杂度远小于传统时钟驱动算法计算复杂度,其仿真速度和性能远优于传统时钟驱动算法仿真性能。
(4)提出了基于虚拟突触-时钟事件混合驱动算法的面向具有功能柱结构的大规模神经网络的并行仿真算法。
首先,面向大脑皮层的功能柱状网络结构,为网络中的突触设计了链表型数据结构,提出基于虚拟突触-时钟事件混合驱动算法的串行仿真算法;接着,为了并行化时钟事件混合驱动算法,针对新的事件处理机制特性,在放电事件触发的突触级电导并行化修正过程中,设计单条突触电导修正量的数组型中间变量,避免了电导并行化修正过程的原子操作。最后,结合CUDA的动态并行(Dynamic Parallelism)技术,设计了新的神经元-突触级并行化策略,提出了基于虚拟突触-时钟事件混合驱动算法的面向具有功能柱结构的大规模神经网络的并行仿真算法。实验结果表明,新的并行算法对功能柱结构的脑皮层神经网络系统具有快速仿真能力,以及具有效率高、实用性广的特点。