Clone this repo:
  1. 0face1b ruy: Fix OOM wild pointer, float cache eviction, and ARM asm bugs by Ruy Contributors · 16 hours ago upstream/master
  2. 37e43f2 ruy: Validate cpuinfo cache pointers before dereferencing by Ruy Contributors · 3 days ago chromium/8155 chromium/8156 chromium/8157 chromium/8157_2 chromium/8158 chromium/8159
  3. 6f524b0 Skip packing sums allocation and computation when zero_point is 0. by Ruy Contributors · 7 days ago chromium/8150 chromium/8151 chromium/8152 chromium/8153 chromium/8154
  4. 2264753 Fix signed integer overflow in MakeKernelParams8bit by Wei Wang · 4 months ago chromium/7969 chromium/7970 chromium/7971 chromium/7972 chromium/7973 chromium/7974 chromium/7975 chromium/7976 chromium/7977 chromium/7977_64 chromium/7977_8 chromium/7978 chromium/7979 chromium/7980 chromium/7981 chromium/7982 chromium/7983 chromium/7984 chromium/7985 chromium/7986 chromium/7987 chromium/7988 chromium/7989 chromium/7990 chromium/7991 chromium/7992 chromium/7993 chromium/7994 chromium/7995 chromium/7996 chromium/7997 chromium/7998 chromium/7999 chromium/8000 chromium/8001 chromium/8002 chromium/8003 chromium/8004 chromium/8005 chromium/8006 chromium/8007 chromium/8008 chromium/8009 chromium/8010 chromium/8010_36 chromium/8011 chromium/8012 chromium/8013 chromium/8014 chromium/8015 chromium/8016 chromium/8017 chromium/8018 chromium/8019 chromium/8020 chromium/8021 chromium/8022 chromium/8023 chromium/8024 chromium/8025 chromium/8026 chromium/8027 chromium/8028 chromium/8029 chromium/8030 chromium/8031 chromium/8032 chromium/8033 chromium/8034 chromium/8035 chromium/8036 chromium/8037 chromium/8037_21 chromium/8037_57 chromium/8037_58 chromium/8037_97 chromium/8038 chromium/8039 chromium/8040 chromium/8041 chromium/8042 chromium/8043 chromium/8044 chromium/8045 chromium/8046 chromium/8047 chromium/8048 chromium/8049 chromium/8050 chromium/8051 chromium/8052 chromium/8053 chromium/8054 chromium/8055 chromium/8056 chromium/8057 chromium/8058 chromium/8059 chromium/8059_40 chromium/8059_85 chromium/8060 chromium/8061 chromium/8062 chromium/8063 chromium/8064 chromium/8065 chromium/8066 chromium/8067 chromium/8068 chromium/8069 chromium/8070 chromium/8071 chromium/8072 chromium/8073 chromium/8074 chromium/8075 chromium/8076 chromium/8077 chromium/8078 chromium/8078_12 chromium/8078_46 chromium/8079 chromium/8080 chromium/8081 chromium/8082 chromium/8083 chromium/8084 chromium/8085 chromium/8086 chromium/8087 chromium/8088 chromium/8089 chromium/8090 chromium/8091 chromium/8092 chromium/8093 chromium/8094 chromium/8095 chromium/8096 chromium/8097 chromium/8098 chromium/8099 chromium/8100 chromium/8101 chromium/8102 chromium/8103 chromium/8103_37 chromium/8103_38 chromium/8104 chromium/8105 chromium/8106 chromium/8106_2 chromium/8107 chromium/8108 chromium/8109 chromium/8110 chromium/8111 chromium/8112 chromium/8113 chromium/8114 chromium/8115 chromium/8116 chromium/8117 chromium/8118 chromium/8119 chromium/8120 chromium/8121 chromium/8122 chromium/8123 chromium/8124 chromium/8125 chromium/8126 chromium/8127 chromium/8128 chromium/8129 chromium/8130 chromium/8131 chromium/8132 chromium/8133 chromium/8134 chromium/8135 chromium/8136 chromium/8137 chromium/8138 chromium/8139 chromium/8140 chromium/8141 chromium/8142 chromium/8143 chromium/8144 chromium/8145 chromium/8146 chromium/8147 chromium/8148 chromium/8149
  5. 857bcab Add nullptr check for processor in QueryCacheParams. by Ruy Contributors · 4 months ago

The ruy matrix multiplication library

This is not an officially supported Google product.

ruy is a matrix multiplication library. Its focus is to cover the matrix multiplication needs of neural network inference engines. Its initial user has been TensorFlow Lite, where it is used by default on the ARM CPU architecture.

ruy supports both floating-point and 8bit-integer-quantized matrices.

Efficiency

ruy is designed to achieve high performance not just on very large sizes, as is the focus of many established libraries, but on whatever are the actual sizes and shapes of matrices most critical in current TensorFlow Lite applications. This often means quite small sizes, e.g. 100x100 or even 50x50, and all sorts of rectangular shapes. It's not as fast as completely specialized code for each shape, but it aims to offer a good compromise of speed across all shapes and a small binary size.

Documentation

Some documentation will eventually be available in the doc/ directory, see doc/README.md.