Intel Pattern Matching in Zephyr?


Felipe Neves
 

Hi Vinay, thanks for the very useful information, I'll take a look on the supplied link :)

A question to you, did you use the intel QMSI software package as interface between physical registers and Arduino library?

Best,

Felipe

2017-02-17 16:17 GMT-02:00 Vinay R Rao <vinay.rao@...>:

Hello guys,

I have some experience with the PME and have documented some of the examples.

While the Arduino library has all the basics, it is by no means complete and if a Zephyr port is planned, then it would be good to design this from the ground up.
I was toying with the idea of doing this myself but got pulled into other projects.

The PME has memory mapped registers which need to be set or read in specific sequences in order to operate. This has been done already in the Arduino library which provides a basic API. However, the underlying sequences need to be optimized and the API enhanced for serious usage.
The data itself is shifted into the engine in 256 byte chunks (vectors). It is like a giant shift register that can take 256 bytes at a time and shift it up to 128 times. There needs to be two mechanisms to send/retrieve data from the PME. 

1. A firmata like communication mechanism so that external training tools can be used to train the PME.
AND/OR
2. The PME needs some utility functions that use SPI driver to read and write to flash.

While the PME can work as-is as a simple Winner-Take-All Neural Network, it does not implement more complex or multi-layer Neural Networks. Instead it can be used as an accelerator. So you need to implement NN libraries that use the hardware PME to accelerate the software. Some examples are RBF and k-NN for which the hardware is suited.

In addition you need some pre-processing libraries to ensure that the data input to the PME is 
1. Properly standardized,
2. Properly normalized, 
3. Has feature extraction performed [i.e. filtering; FFT; etc]

Perhaps a bridge mechanism from the sensor subsystem is also needed. [Could be modeled along  the lines of IPM where the PME is another end-point for sensors to send data]

A higher level API to use the NN libraries for Supervised or Unsupervised Learning is also recommended.


Regards,

Vinay R. Rao
Senior Member IEEE
Communications Society
Computer Society

Founder & Principal
V. Rao Research Associates


On Fri, Feb 17, 2017 at 4:53 AM, Felipe Neves <ryukokki.felipe@...> wrote:
Hey guys.

If this library is available to Arduino 101 and TinyTile (as shown in github), and all code base for it is referenced on Intel QMSI library, I think the PME engine is already supportend on QMSI, if so
should be easy to port to zephyr since the QMSI is already supported by the kernel, only needs to write a suitable device driver and put into zephyr's device model right?

Best,

Felipe

2017-02-17 10:33 GMT-02:00 Poussa, Sakari <sakari.poussa@...>:

Hi,

 

I have been trying to use it a bit. The open source code is here.

 

https://github.com/01org/Intel-Pattern-Matching-Technology

 

It is bit out of date but with a little bit tweaking you can get it to build. It should be easy to drop the Arduino parts since they are really not needed.

 

Sakari

 

On 2/17/17, 2:23 PM, "zephyr-users-bounces@...phyrproject.org on behalf of Carles Perello" <zephyr-users-bounces@...phyrproject.org on behalf of carles.perello@...> wrote:

 

Hi

 

Just wondering if anybody used the PM technology with zephyr.

 

There is code for the arduino IDE but I don't know how difficult would be to port it

 

regards


_______________________________________________
Zephyr-users mailing list
Zephyr-users@...ct.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-users




--
Felipe S. Neves 
Embedded software & systems engineer
Skype: fneves1989

_______________________________________________
Zephyr-users mailing list
Zephyr-users@...ct.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-users




--
Vinay R. Rao
Senior Member IEEE
Communications Society
Computer Society

Founder & Principal
V. Rao Research Associates




--
Felipe S. Neves 
Embedded software & systems engineer
Skype: fneves1989
+55 11 96610 – 0855 


Vinay R Rao <vinay.rao@...>
 

Hello guys,

I have some experience with the PME and have documented some of the examples.

While the Arduino library has all the basics, it is by no means complete and if a Zephyr port is planned, then it would be good to design this from the ground up.
I was toying with the idea of doing this myself but got pulled into other projects.

The PME has memory mapped registers which need to be set or read in specific sequences in order to operate. This has been done already in the Arduino library which provides a basic API. However, the underlying sequences need to be optimized and the API enhanced for serious usage.
The data itself is shifted into the engine in 256 byte chunks (vectors). It is like a giant shift register that can take 256 bytes at a time and shift it up to 128 times. There needs to be two mechanisms to send/retrieve data from the PME. 

1. A firmata like communication mechanism so that external training tools can be used to train the PME.
AND/OR
2. The PME needs some utility functions that use SPI driver to read and write to flash.

While the PME can work as-is as a simple Winner-Take-All Neural Network, it does not implement more complex or multi-layer Neural Networks. Instead it can be used as an accelerator. So you need to implement NN libraries that use the hardware PME to accelerate the software. Some examples are RBF and k-NN for which the hardware is suited.

In addition you need some pre-processing libraries to ensure that the data input to the PME is 
1. Properly standardized,
2. Properly normalized, 
3. Has feature extraction performed [i.e. filtering; FFT; etc]

Perhaps a bridge mechanism from the sensor subsystem is also needed. [Could be modeled along  the lines of IPM where the PME is another end-point for sensors to send data]

A higher level API to use the NN libraries for Supervised or Unsupervised Learning is also recommended.


Regards,

Vinay R. Rao
Senior Member IEEE
Communications Society
Computer Society

Founder & Principal
V. Rao Research Associates


On Fri, Feb 17, 2017 at 4:53 AM, Felipe Neves <ryukokki.felipe@...> wrote:
Hey guys.

If this library is available to Arduino 101 and TinyTile (as shown in github), and all code base for it is referenced on Intel QMSI library, I think the PME engine is already supportend on QMSI, if so
should be easy to port to zephyr since the QMSI is already supported by the kernel, only needs to write a suitable device driver and put into zephyr's device model right?

Best,

Felipe

2017-02-17 10:33 GMT-02:00 Poussa, Sakari <sakari.poussa@...>:

Hi,

 

I have been trying to use it a bit. The open source code is here.

 

https://github.com/01org/Intel-Pattern-Matching-Technology

 

It is bit out of date but with a little bit tweaking you can get it to build. It should be easy to drop the Arduino parts since they are really not needed.

 

Sakari

 

On 2/17/17, 2:23 PM, "zephyr-users-bounces@...phyrproject.org on behalf of Carles Perello" <zephyr-users-bounces@...phyrproject.org on behalf of carles.perello@...> wrote:

 

Hi

 

Just wondering if anybody used the PM technology with zephyr.

 

There is code for the arduino IDE but I don't know how difficult would be to port it

 

regards


_______________________________________________
Zephyr-users mailing list
Zephyr-users@...ct.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-users




--
Felipe S. Neves 
Embedded software & systems engineer
Skype: fneves1989

_______________________________________________
Zephyr-users mailing list
Zephyr-users@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-users




--
Vinay R. Rao
Senior Member IEEE
Communications Society
Computer Society

Founder & Principal
V. Rao Research Associates


Felipe Neves
 

Hey guys.

If this library is available to Arduino 101 and TinyTile (as shown in github), and all code base for it is referenced on Intel QMSI library, I think the PME engine is already supportend on QMSI, if so
should be easy to port to zephyr since the QMSI is already supported by the kernel, only needs to write a suitable device driver and put into zephyr's device model right?

Best,

Felipe

2017-02-17 10:33 GMT-02:00 Poussa, Sakari <sakari.poussa@...>:

Hi,

 

I have been trying to use it a bit. The open source code is here.

 

https://github.com/01org/Intel-Pattern-Matching-Technology

 

It is bit out of date but with a little bit tweaking you can get it to build. It should be easy to drop the Arduino parts since they are really not needed.

 

Sakari

 

On 2/17/17, 2:23 PM, "zephyr-users-bounces@lists.zephyrproject.org on behalf of Carles Perello" <zephyr-users-bounces@lists.zephyrproject.org on behalf of carles.perello@...> wrote:

 

Hi

 

Just wondering if anybody used the PM technology with zephyr.

 

There is code for the arduino IDE but I don't know how difficult would be to port it

 

regards


_______________________________________________
Zephyr-users mailing list
Zephyr-users@lists.zephyrproject.org
https://lists.zephyrproject.org/mailman/listinfo/zephyr-users




--
Felipe S. Neves 
Embedded software & systems engineer
Skype: fneves1989
+55 11 96610 – 0855 


Poussa, Sakari
 

Hi,

 

I have been trying to use it a bit. The open source code is here.

 

https://github.com/01org/Intel-Pattern-Matching-Technology

 

It is bit out of date but with a little bit tweaking you can get it to build. It should be easy to drop the Arduino parts since they are really not needed.

 

Sakari

 

On 2/17/17, 2:23 PM, "zephyr-users-bounces@... on behalf of Carles Perello" <zephyr-users-bounces@... on behalf of carles.perello@...> wrote:

 

Hi

 

Just wondering if anybody used the PM technology with zephyr.

 

There is code for the arduino IDE but I don't know how difficult would be to port it

 

regards


Carles Perello
 

Hi

Just wondering if anybody used the PM technology with zephyr.

There is code for the arduino IDE but I don't know how difficult would be to port it

regards