9330356

Apparatus and Methods for Developing Parallel Networks Using a General Purpose Programming Language

PublishedMay 3, 2016
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
22 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of generating machine executable instructions configured to operate a parallel network via a computerized processing apparatus, the method comprising: based at least in part on an evaluation of a code element of an integrated network design comprising a general purpose language portion and a network description portion by the processing apparatus, causing generation of: responsive to at least an indication by the evaluation that the element corresponds to the general purpose language portion of the network design, a first plurality of machine executable instructions; and responsive to at least an indication by the evaluation that the element corresponds to the network description portion of the network design, a second plurality of machine executable instructions; wherein: individual ones of the second plurality of machine executable instructions are configured to be executed by the processing apparatus; the second plurality of machine executable instructions is implemented in a specific hardware platform of the parallel network and comprises a reference to at least one instruction of the first plurality of instructions; the code element comprises the network description portion and the general purpose language portion associated with the network description portion; the general purpose language portion comprises a network object definition; the network object definition characterized by at least a first memory location configured to store a reference to the code element corresponding to the general purpose language portion of the network description; and the network description portion comprises an instantiation of at least one network object configured based on the network object definition.

2

2. The method of claim 1 , wherein: the first plurality of machine executable instructions are configured to provide the network object definition, the first memory location configured to be referenced via an object identifier; and the second plurality of machine executable instructions is configured to generate one or more instances of the at least one network object in accordance with the definition, comprising at least: accessing the first memory location via the object identifier reference, the accessing comprising retrieving the code element corresponding to the general purpose language portion of the network description; and converting at least a portion of the code element corresponding to the general purpose language portion of the network description into the first plurality of machine executable instructions, the conversion being based on at least one characteristic of the computerized processing apparatus.

3

3. The method of claim 2 , wherein: the general purpose language comprises an interpreted language; the evaluation of the code element comprises an interpretation of the code element by an interpreter tool associated with the general purpose language; and the first plurality of machine executable instructions and the second plurality of machine executable instructions each comprise byte code.

4

4. The method of claim 3 , wherein: the computerized processing apparatus comprises a processor comprising multiple processing cores; and the at least one characteristic comprises a memory level parallelism parameter configured to indicate a number of memory operations for a given memory location accessible by an individual one of the multiple processing cores contemporaneously with at least access by one other individual one of the multiple processing cores.

5

5. The method of claim 3 , wherein the conversion is configured to produce the first plurality of machine executable instructions absent any user interface or operating system calls.

6

6. The method of claim 3 , wherein: the computerized processing apparatus comprises a graphics processor comprising multiple processing elements; the network design comprises a plurality of units; and the at least one characteristic comprises a thread level parallelism parameter configured to indicate a number of multiple threads operable concurrently by a given processing element, an individual one of the threads corresponding to at least one of the plurality of units.

7

7. The method of claim 6 , wherein the at least one characteristic is configured to cause access of a memory location by individual ones of the multiple threads via an atomic operation.

8

8. The method of claim 2 , wherein: the general purpose language comprises a compiled language; and the evaluation of the code element comprises compilation of the code element by a compiler tool configured to compile the general purpose language, the compilation configured to generate the first and the second plurality of machine executable instructions.

9

9. The method of claim 8 , further comprising: evaluating individual ones of the first and the second plurality of machine executable instructions via a parallel network compiler tool; based on the evaluation, automatically retrieving source code corresponding to the network description portion of the network design; and compiling the retrieved source code into multiple hardware optimized executable code portions configured to be executed by the computerized processing apparatus.

10

10. The method of claim 8 , wherein the general purpose language is selected from the group consisting of C, C++, Java, and High Level Neuromorphic Description Language.

11

11. The method of claim 1 , further comprising: causing introspection of the first plurality of machine executable instructions to retrieve source code associated with the code element; based on the retrieved source code, causing generation of a third plurality of machine executable instructions, the third plurality of machine executable instructions being based on a resource use characteristic of the computerized processing apparatus; and the source code retrieval and the generation of the third plurality of machine executable instructions enable optimized operation of one or more instances of at least one network object by the computerized processing apparatus, the execution optimization is characterized by the resource use characteristic of the computerized processing apparatus.

12

12. The method of claim 11 , wherein the resource use characteristic comprises one or more of execution time, memory use, idle time, and number of instructions executed by the computerized processing apparatus in a given time.

13

13. The method of claim 11 , wherein: the network comprises multiple objects configured to be updatable; the execution optimization is characterized by a network resource characteristic; and resource use characteristic comprises a number of objects of the multiple objects being updated by the computerized processing apparatus in a given time interval.

14

14. The method of claim 1 , wherein the computerized processing apparatus is selected from the group consisting of a core of multicore central processing unit, a digital signal processor, a central processing unit, a computing cluster comprising multiple processing units, a field programmable gate array, a graphics processing unit; and an application specific integrated circuit.

15

15. The method of claim 1 , wherein the computerized processing apparatus is configured to be accessed via a cloud computing service.

16

16. An apparatus configured to process sensory data, the apparatus comprising: a first processing device configured to operate a first portion of a parallel network; and a second processing device configured to operate a second portion of the parallel network contemporaneously with the operation of the first portion; wherein: the parallel network is based on a design code comprising a general purpose language portion and a network portion; the general purpose language portion comprises a network object definition, the network object definition characterized by at least a first memory location configured to store a reference to the design code corresponding to the general purpose language portion; the network portion comprises an instantiation of at least one network object configured based on the network object definition; the first and the second portions cooperate to effectuate the sensory data processing; the operation of the first and the second portions is configured based on first and second pluralities of machine instructions; the first and the second pluralities of machine instructions are configured to be executable by the first and the second processing devices, respectively; the first and the second pluralities of machine instructions are configured based on an evaluation of a code element of the design code, the evaluation being based on an intermediate syntax-independent representation of a network object; and the intermediate syntax-independent representation is automatically generated responsive to an indication by the evaluation that the element corresponds to the network portion and is implemented in a specific hardware platform of the parallel network.

17

17. A method of using a general purpose programming language to operate a neural network comprising a plurality of elements, the method comprising: enabling, via computer processing logic, a user of the network to define a parameter of the network using the general purpose programming language; automatically generating general purpose code, the generation effectuated by a code conversion tool associated with the general purpose programming language; and automatically generating a general network description code consistent with the parameter of the network, the generation effectuated by a network tool associated with the general purpose programming language; wherein: the general purpose code is configured to provide a network object definition for the plurality of elements in accordance with the parameter of the network; the general network description code is configured to instantiate individual ones of the plurality of elements in accordance with the network object definition and being implemented for a specific hardware platform; and the network object definition is characterized by at least a first memory location configured to store a reference to a code element corresponding to the general purpose code.

18

18. The method of claim 17 , wherein the at least one of the individual ones of the plurality of elements comprises one or more of a neuron and a synapse configured to interconnect two or more neurons.

19

19. The method of claim 17 , wherein the general purpose language comprises an interpreted language.

20

20. A non-transitory computer-readable medium configured to store a plurality of instructions thereon, the plurality of instructions configured to, when executed: receive a parameter of a network; based on an identification of a general purpose code portion configured to produce a network object definition of at least one network object, generate a first set of machine code, the first set being consistent with the parameter; and based on an identification of a network design code portion, configured to cause the instantiation of individual ones of a plurality of network objects of the network based at least in part on the network object definition, generate a second set of machine code implemented in a specific hardware platform of a parallel network, the second set being consistent with the parameter, wherein the network object definition is characterized by at least a first memory location configured to store a reference to a code element corresponding to the general purpose code portion.

21

21. The computer-readable medium of claim 20 , wherein the general purpose code portion and the network design code portion comprise code rendered in an interpreted language.

22

22. The computer-readable medium of claim 20 , wherein the definition of at least one network object comprises a definition of one or more of a neuron and synapse.

Patent Metadata

Filing Date

Unknown

Publication Date

May 3, 2016

Inventors

Jonathan James Hunt
Oleg Sinyavskiy

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “APPARATUS AND METHODS FOR DEVELOPING PARALLEL NETWORKS USING A GENERAL PURPOSE PROGRAMMING LANGUAGE” (9330356). https://patentable.app/patents/9330356

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.