很早之前,就有Juia取代Python的传闻。虽然时至今日,还未实现。不过先天具备科学计算特色的新型物种Juia编程语言,的确在一步步进步,逐步“蚕食”以往Python的领地。这次则是深度学习框架方面。
虽然现在大多数人工智能深度学习框架都支持Python接口,不过更具“正统血脉”的还是Torch,作为Python语言的PyTorch框架,自从发布以来就广为好评,在学术领域已然超越了TensorFlow。而后来者Julia显然也不示弱,之前就有Flux.jl框架,不过它身材苗条,机智客觉得它只符合人类天性的喜好,而并不具备挑战者的魄力。于是现在,又一个新框架SimpleChains.jl出现了。有关数据表示,在小模型场景下,SimpleChains.jl相比PyTorch最少能提速5倍。
没错,是小模型的神经网络工作内。很坦率地说,定位于小型神经网络的SimpleChains.jl直面这个范围领域的瓶颈和痛点。它很好解决了诸如小型网络GPU内核性能不及优良设计的CPU内核、操作Sigma时O(n)时间复杂度的内存开销严重问题等这类的优化问题,还能在CPU上快速拟合和优化小模型。
出具的实验过程是,研究人员用一个2×2的矩阵做了一个实验,在带有AVX512指令集的Intel i9-10980XE跑了一下,1万个epoch花了0.41秒,相比之下pyTorch花了15秒,也就是说在这种微型神经网络上,提速大约35倍。而把实验换到AMD EPYC 7513 带有AVX2指令的机器上,Julia的实现花费时间为0.72秒,而PyTorch的实现则需要70秒,差距拉升到了100倍。
目前SimpleChains.jl的版本是V0.2.2。正因为这个深度学习框架对小型神经网络更友好,因此它的定位也很明确,开发人员说得明白,这个框架不会对所有人都有用,但对那些需要它的人来说,它是非常有用的。也许,在工业生产力级别的大型深度学习神经网络上,Julia还无法和Python相比,毕竟后者已经有太多接口和库了,占尽先天优势。Julia还要假以时日继续努力吧。
领取专属 10元无门槛券
私享最新 技术干货