我试图围绕最有效的方法来处理不确定大小的数组作为 RS 内核的输出。我会在 out 分配中发送最后一个相关数组槽的索引,但我在对上一个问题的回答中了解到,在内核执行后将全局返回给 java 并不是一个好方法。我决定再次“缩小”这个过程,这让我看到了下面的模式。
例如,假设我们有一个输入分配,其中包含一个结构(或多个结构),该结构包含两个极坐标数组;类似于下面的 set_pair :
typedef struct polar_tag{
uint8_t angle;
uint32_t mag;
} polar;
typedef struct polar_set_tag{
uint8_t filled_slots;
polar coordinates[60];
} polar_set;
typedef struct set_pair_tag{
polar_set probe_set;
polar_set candidate_set;
} set_pair;
我们希望在集合之间找到相似的坐标对,因此我们设置了一个内核来确定哪些(如果有的话)极坐标是相似的。如果它们相似,我们将其加载到类似于“matching_set”的输出分配中:
typedef struct matching_pair_tag{
uint8_t probe_index;
uint8_t candidate_index;
} matching_pair;
typedef struct matching_set_tag{
matching_pair pairs[120];
uint8_t filled_slots;
} matching_set;
使用诸如“filled_slots”之类的指令创建分配是使用 RS 处理这种不确定 I/O 的最有效(或唯一)方法,还是有更好的方法?