I noticed that this OpenCL GPU routine for `ordered_logistic`

(`ordered_logistic_glm_lpmf`

) was added to stan-dev somewhat recently (https://github.com/stan-dev/math/pull/1252) and seems to promise some large performance gains.

Can this somehow be used as a drop in replacement for `ordered_logistic`

? Our current model uses the ordered_logistic function and looks something like this:

```
for(i in 1:N){
X = ...;
beta = ...;
y[i] ~ ordered_logistic(X*beta, cuts);
}
```

I tried translating this model to use the _glm function like so, I basically put all the data into vectors and used those as inputs:

```
transformed parameters {
...
matrix[N,1] X;
vector[N] beta;
for(i in 1:N){
X[i,1] = ...;
beta[i] = ...;
}
}
model {
target += ordered_logistic_glm_lpmf(y | X, beta, cuts);
}
```

However the inputs fail the bounds constraints

```
Exception: ordered_logistic_glm_lpmf: Weight vector has dimension = 3087, expecting dimension = 1; a function was called with arguments of different scalar, array, vector, or matrix types, and they were not consistently sized; all arguments must be scalars or multidimensional values of the same shape.
```

I guess it expects X to be of size N x k, where k is the length of the weight vector, but I donâ€™t fully understand why. Why do I need N x k weights to fit this model when I only needed k weights to fit `ordered_logistic`

?

Should I maybe use an X where each row is my weight vector, repeated N times?

Thanks!

Jeff