Convolutional neural networks in APL

Artjoms Šinkarovs, Robert Bernecky, Sven-Bodo Scholz

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

This paper shows how a Convolutional Neural Network (CNN) can be implemented in APL. Its first-class array support ideally fits that domain, and the operations of APL facilitate rapid and concise creation of generically reusable building blocks. For our example, only ten blocks are needed, and they can be expressed as ten lines of native APL. All these blocks are purely functional, and they are built out of a small number of builtin operators, resulting in a highly portable specification that is immediately runnable and should be suitable for high-performance optimizations and parallel execution. This implies that APL can be seen as a framework to define shallowly-embedded machine learning DSLs without any external dependencies, making them useful at least for experiments and prototyping. We explain the construction of each CNN building block, and briefly discuss the performance of the resulting specification.

LanguageEnglish
Title of host publicationProceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming
EditorsJeremy Gibbons
PublisherACM
Pages69-79
Number of pages11
ISBN (Electronic)9781450367172
DOIs
Publication statusPublished - 8 Jun 2019
Event6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2019 - Phoenix, United States
Duration: 22 Jun 201922 Jun 2019

Conference

Conference6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2019
Abbreviated titleARRAY 2019
CountryUnited States
CityPhoenix
Period22/06/1922/06/19

Fingerprint

Neural networks
Specifications
DSL
Learning systems
Experiments

Keywords

  • APL
  • Arrays
  • CNN
  • DSL
  • Neural networks

ASJC Scopus subject areas

  • Software

Cite this

Šinkarovs, A., Bernecky, R., & Scholz, S-B. (2019). Convolutional neural networks in APL. In J. Gibbons (Ed.), Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming (pp. 69-79). ACM. https://doi.org/10.1145/3315454.3329960
Šinkarovs, Artjoms ; Bernecky, Robert ; Scholz, Sven-Bodo. / Convolutional neural networks in APL. Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming. editor / Jeremy Gibbons. ACM, 2019. pp. 69-79
@inproceedings{6e0168da946749f3b9ba392bf978bf88,
title = "Convolutional neural networks in APL",
abstract = "This paper shows how a Convolutional Neural Network (CNN) can be implemented in APL. Its first-class array support ideally fits that domain, and the operations of APL facilitate rapid and concise creation of generically reusable building blocks. For our example, only ten blocks are needed, and they can be expressed as ten lines of native APL. All these blocks are purely functional, and they are built out of a small number of builtin operators, resulting in a highly portable specification that is immediately runnable and should be suitable for high-performance optimizations and parallel execution. This implies that APL can be seen as a framework to define shallowly-embedded machine learning DSLs without any external dependencies, making them useful at least for experiments and prototyping. We explain the construction of each CNN building block, and briefly discuss the performance of the resulting specification.",
keywords = "APL, Arrays, CNN, DSL, Neural networks",
author = "Artjoms Šinkarovs and Robert Bernecky and Sven-Bodo Scholz",
year = "2019",
month = "6",
day = "8",
doi = "10.1145/3315454.3329960",
language = "English",
pages = "69--79",
editor = "Jeremy Gibbons",
booktitle = "Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming",
publisher = "ACM",

}

Šinkarovs, A, Bernecky, R & Scholz, S-B 2019, Convolutional neural networks in APL. in J Gibbons (ed.), Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming. ACM, pp. 69-79, 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming 2019 , Phoenix, United States, 22/06/19. https://doi.org/10.1145/3315454.3329960

Convolutional neural networks in APL. / Šinkarovs, Artjoms; Bernecky, Robert; Scholz, Sven-Bodo.

Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming. ed. / Jeremy Gibbons. ACM, 2019. p. 69-79.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

TY - GEN

T1 - Convolutional neural networks in APL

AU - Šinkarovs, Artjoms

AU - Bernecky, Robert

AU - Scholz, Sven-Bodo

PY - 2019/6/8

Y1 - 2019/6/8

N2 - This paper shows how a Convolutional Neural Network (CNN) can be implemented in APL. Its first-class array support ideally fits that domain, and the operations of APL facilitate rapid and concise creation of generically reusable building blocks. For our example, only ten blocks are needed, and they can be expressed as ten lines of native APL. All these blocks are purely functional, and they are built out of a small number of builtin operators, resulting in a highly portable specification that is immediately runnable and should be suitable for high-performance optimizations and parallel execution. This implies that APL can be seen as a framework to define shallowly-embedded machine learning DSLs without any external dependencies, making them useful at least for experiments and prototyping. We explain the construction of each CNN building block, and briefly discuss the performance of the resulting specification.

AB - This paper shows how a Convolutional Neural Network (CNN) can be implemented in APL. Its first-class array support ideally fits that domain, and the operations of APL facilitate rapid and concise creation of generically reusable building blocks. For our example, only ten blocks are needed, and they can be expressed as ten lines of native APL. All these blocks are purely functional, and they are built out of a small number of builtin operators, resulting in a highly portable specification that is immediately runnable and should be suitable for high-performance optimizations and parallel execution. This implies that APL can be seen as a framework to define shallowly-embedded machine learning DSLs without any external dependencies, making them useful at least for experiments and prototyping. We explain the construction of each CNN building block, and briefly discuss the performance of the resulting specification.

KW - APL

KW - Arrays

KW - CNN

KW - DSL

KW - Neural networks

UR - http://www.scopus.com/inward/record.url?scp=85067963012&partnerID=8YFLogxK

U2 - 10.1145/3315454.3329960

DO - 10.1145/3315454.3329960

M3 - Conference contribution

SP - 69

EP - 79

BT - Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming

A2 - Gibbons, Jeremy

PB - ACM

ER -

Šinkarovs A, Bernecky R, Scholz S-B. Convolutional neural networks in APL. In Gibbons J, editor, Proceedings of the 6th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming. ACM. 2019. p. 69-79 https://doi.org/10.1145/3315454.3329960