Forums - Unable to do inference on NPU/AIP using the SNPE SDK cpp API

3 posts / 0 new
Last post
Unable to do inference on NPU/AIP using the SNPE SDK cpp API
vkakula
Join Date: 21 Apr 23
Posts: 7
Posted: Mon, 2023-05-08 01:32

I am using SNPE 1.60 version and I have crated a CPP code for inference of mobilenetv3 using the dlc model. When I tried doing the inference on CPU , GPU & DSP it was able to do (this involved a UDO operation developed for CPU). Now I have quantized the modle and gave --enable_hta flag during quantization, then when I used that quantized model to do the inference, I am geting below log and not getting inference results correctly.

npu_get_property status: 0
npu_get_property status: 0
FW CAPS [0] = 0x2007
FW CAPS [1] = 0x80000005
FW CAPS [2] = 0x0
FW CAPS [3] = 0x0
FW CAPS [4] = 0x0
FW CAPS [5] = 0x0
FW CAPS [6] = 0x0
FW CAPS [7] = 0x0
npu_get_property status: 0
NPU User Driver: npu_read_info 0
npu_get_property status: 0
npu_get_property status: 0
FW CAPS [0] = 0x2007
FW CAPS [1] = 0x80000005
FW CAPS [2] = 0x0
FW CAPS [3] = 0x0
FW CAPS [4] = 0x0
FW CAPS [5] = 0x0
FW CAPS [6] = 0x0
FW CAPS [7] = 0x0
npu_get_property status: 0
NPU driver built on: Nov 15 2021 16:38:53
npu_get_property status: 0
npu_get_property status: 0
FW CAPS [0] = 0x2007
FW CAPS [1] = 0x80000005
FW CAPS [2] = 0x0
FW CAPS [3] = 0x0
FW CAPS [4] = 0x0
FW CAPS [5] = 0x0
FW CAPS [6] = 0x0
FW CAPS [7] = 0x0
npu_get_property status: 0
DLBC compression enabled
item already exists: 1124
NET size 8192 off 0 id=ffffffff
INTERMEDIATE size 874496 off 0 id=fffffffe
ACO buffer size 9098 fd 17 off 0
* NPU_Stats: npu_compile_get_objs(): 40.93 ms
DUAL ACO VA = 0fe9d0000 Network VA = 0xffa3e000 Intermediate VA = 0xfeb00000 Intermediate 1 VA= 0xfe100000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 6
* NPU_Stats: npu_load_network_v2: NPU + kernel : 10.12 ms
npu_load_network_v2: network handle = 0x1a501
* NPU_Stats: npu_load_network(): 53.12 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.52 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.50 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.55 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 53248 off 0 id=ffffffff
INTERMEDIATE size 608256 off 0 id=fffffffe
ACO buffer size 24492 fd 32 off 0
* NPU_Stats: npu_compile_get_objs(): 89.75 ms
DUAL ACO VA = 0fdcd0000 Network VA = 0xfe4e0000 Intermediate VA = 0xfd200000 Intermediate 1 VA= 0xfd100000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 17
* NPU_Stats: npu_load_network_v2: NPU + kernel : 1.21 ms
npu_load_network_v2: network handle = 0x2a603
* NPU_Stats: npu_load_network(): 98.12 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.46 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.86 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.64 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.55 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 118784 off 0 id=ffffffff
INTERMEDIATE size 103424 off 0 id=fffffffe
ACO buffer size 15086 fd 48 off 0
* NPU_Stats: npu_compile_get_objs(): 54.24 ms
DUAL ACO VA = 0fdc60000 Network VA = 0xfdba0000 Intermediate VA = 0xfdfc0000 Intermediate 1 VA= 0xfff00000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 10
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.50 ms
npu_load_network_v2: network handle = 0x3a705
* NPU_Stats: npu_load_network(): 57.70 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.37 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.49 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.37 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.63 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.31 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 126976 off 0 id=ffffffff
INTERMEDIATE size 103424 off 0 id=fffffffe
ACO buffer size 17072 fd 66 off 0
* NPU_Stats: npu_compile_get_objs(): 72.33 ms
DUAL ACO VA = 0fce70000 Network VA = 0xfe020000 Intermediate VA = 0xfe040000 Intermediate 1 VA= 0xfcf60000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 12
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.92 ms
npu_load_network_v2: network handle = 0x4a807
* NPU_Stats: npu_load_network(): 76.58 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.80 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 1.10 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.74 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.71 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 1.15 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.50 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 65536 off 0 id=ffffffff
INTERMEDIATE size 103424 off 0 id=fffffffe
ACO buffer size 16942 fd 86 off 0
* NPU_Stats: npu_compile_get_objs(): 63.14 ms
DUAL ACO VA = 0fd750000 Network VA = 0xfd730000 Intermediate VA = 0xfdf40000 Intermediate 1 VA= 0xfd900000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 12
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.62 ms
npu_load_network_v2: network handle = 0x5a909
* NPU_Stats: npu_load_network(): 67.87 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.56 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 1.23 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.65 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 1.18 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.55 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 81920 off 0 id=ffffffff
INTERMEDIATE size 66560 off 0 id=fffffffe
ACO buffer size 14990 fd 104 off 0
* NPU_Stats: npu_compile_get_objs(): 51.85 ms
DUAL ACO VA = 0fd468000 Network VA = 0xfd920000 Intermediate VA = 0xfd8c0000 Intermediate 1 VA= 0xfd6c0000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 10
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.75 ms
npu_load_network_v2: network handle = 0x6aa0b
* NPU_Stats: npu_load_network(): 55.50 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.55 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.79 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.80 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.81 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.62 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 114688 off 0 id=ffffffff
INTERMEDIATE size 99328 off 0 id=fffffffe
ACO buffer size 17166 fd 122 off 0
* NPU_Stats: npu_compile_get_objs(): 50.02 ms
DUAL ACO VA = 0fd830000 Network VA = 0xfd700000 Intermediate VA = 0xfd800000 Intermediate 1 VA= 0xfd840000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 12
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.72 ms
npu_load_network_v2: network handle = 0x7ab0d
* NPU_Stats: npu_load_network(): 53.30 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.48 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.54 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.72 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.39 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.43 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 319488 off 0 id=ffffffff
INTERMEDIATE size 60416 off 0 id=fffffffe
ACO buffer size 15566 fd 140 off 0
* NPU_Stats: npu_compile_get_objs(): 36.56 ms
DUAL ACO VA = 0fd530000 Network VA = 0xfcc00000 Intermediate VA = 0xfdb20000 Intermediate 1 VA= 0xfdbc0000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 10
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.70 ms
npu_load_network_v2: network handle = 0x8ac0f
* NPU_Stats: npu_load_network(): 39.78 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.59 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.58 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.54 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.76 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.40 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 348160 off 0 id=ffffffff
INTERMEDIATE size 61440 off 0 id=fffffffe
ACO buffer size 17584 fd 158 off 0
* NPU_Stats: npu_compile_get_objs(): 64.03 ms
DUAL ACO VA = 0fccc0000 Network VA = 0xfcb00000 Intermediate VA = 0xfceb0000 Intermediate 1 VA= 0xfdbd0000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 12
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.52 ms
npu_load_network_v2: network handle = 0x9ad11
* NPU_Stats: npu_load_network(): 66.93 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.50 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.80 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.60 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.62 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.61 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.58 ms sts=0
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 114688 off 0 id=ffffffff
INTERMEDIATE size 61440 off 0 id=fffffffe
ACO buffer size 10956 fd 178 off 0
* NPU_Stats: npu_compile_get_objs(): 34.37 ms
DUAL ACO VA = 0fced8000 Network VA = 0xfcde0000 Intermediate VA = 0xfdcb0000 Intermediate 1 VA= 0xfca80000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 8
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.76 ms
npu_load_network_v2: network handle = 0xaae13
* NPU_Stats: npu_load_network(): 38.28 ms
NPU driver built on: Nov 15 2021 16:38:53
DLBC compression enabled
item already exists: 1124
NET size 1257472 off 0 id=ffffffff
INTERMEDIATE size 4096 off 0 id=fffffffe
ACO buffer size 9580 fd 187 off 0
* NPU_Stats: npu_compile_get_objs(): 64.64 ms
DUAL ACO VA = 0fe9f0000 Network VA = 0xfc800000 Intermediate VA = 0xfffb0000 Intermediate 1 VA= 0xfe6a5000
 
npu_load_network_v2: perf mode = 4 priority = 3f flags = 0x44 num layers = 4
* NPU_Stats: npu_load_network_v2: NPU + kernel : 0.49 ms
npu_load_network_v2: network handle = 0xbaf15
* NPU_Stats: npu_load_network(): 67.66 ms
* NPU_Stats: npu_alloc_buffer_v2(): 0.40 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.51 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.40 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.45 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.33 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.46 ms sts=0
* NPU_Stats: npu_alloc_buffer_v2(): 0.33 ms sts=0
npu_set_property status: 0
npu_set_property status: 0
 
############### engine inference error #######################
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.63 ms
free delayed buffer fe52f000
free delayed buffer ffdc0000
free delayed buffer fdd80000
* NPU_Stats: npu_unload_network(): 13.87 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.29 ms
free delayed buffer fcaae000
free delayed buffer fcaa0000
free delayed buffer fcda0000
free delayed buffer fca9d000
* NPU_Stats: npu_unload_network(): 10.75 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.32 ms
free delayed buffer fe59d000
free delayed buffer ff990000
free delayed buffer fdf98000
free delayed buffer fdca0000
free delayed buffer ff12f000
* NPU_Stats: npu_unload_network(): 11.57 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.28 ms
free delayed buffer fe5cf000
free delayed buffer ff060000
free delayed buffer fdcac000
free delayed buffer feaec000
free delayed buffer fe5e0000
free delayed buffer fe1da000
* NPU_Stats: npu_unload_network(): 25.01 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.52 ms
free delayed buffer ff6ef000
free delayed buffer fdc20000
free delayed buffer fe07c000
free delayed buffer fd6a0000
free delayed buffer fedff000
* NPU_Stats: npu_unload_network(): 28.22 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.47 ms
free delayed buffer fe0b7000
free delayed buffer fd4c8000
free delayed buffer fd7b8000
free delayed buffer ff120000
free delayed buffer ff07f000
* NPU_Stats: npu_unload_network(): 26.14 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.52 ms
free delayed buffer fd1dd000
free delayed buffer fdb84000
free delayed buffer fdaec000
free delayed buffer fd5f0000
free delayed buffer fd1ee000
* NPU_Stats: npu_unload_network(): 20.02 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.45 ms
free delayed buffer fd52f000
free delayed buffer fd8b8000
free delayed buffer fefde000
free delayed buffer fd788000
free delayed buffer fd54f000
* NPU_Stats: npu_unload_network(): 21.06 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.28 ms
free delayed buffer fced6000
free delayed buffer fcd90000
free delayed buffer ffabe000
free delayed buffer ffa7e000
free delayed buffer fcec8000
free delayed buffer fcec7000
* NPU_Stats: npu_unload_network(): 15.03 ms
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
src/rpcmem_android.c:256::error: -1: mfree
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_free_buffer_v2(): 0.00 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 0.28 ms
free delayed buffer fcfdb000
free delayed buffer fc7fc000
free delayed buffer fd5d8000
free delayed buffer fccde000
* NPU_Stats: npu_unload_network(): 11.04 ms
* NPU_Stats: npu_unload_network(): NPU + kernel : 5.43 ms
free delayed buffer fd34d000
free delayed buffer fcfda000
free delayed buffer fcfdc000
* NPU_Stats: npu_unload_network(): 16.60 ms
 
Please can you suggest me what should I do to solve this. Thanks in advance
  • Up0
  • Down0
weihuan
Join Date: 12 Apr 20
Posts: 270
Posted: Sat, 2023-05-13 19:55

Dear developer,

It's latency soc if you run your model on HTA. This issue seems like was caused by unsupported layer on HTA and fallback to cDSP. But this loopback will cause unknow issues and then model exeuction failed.

We don't support HTA opt now so that it's recommending to convert your model with DSP backend.

BR.

Wei

  • Up0
  • Down0
vkakula
Join Date: 21 Apr 23
Posts: 7
Posted: Mon, 2023-05-15 04:55

Okay, thanks for your reply

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.