Title: Why program.build() always says "}"didn't match? · Issue #41 · nativelibs4java/JavaCL · GitHub
Open Graph Title: Why program.build() always says "}"didn't match? · Issue #41 · nativelibs4java/JavaCL
X Title: Why program.build() always says "}"didn't match? · Issue #41 · nativelibs4java/JavaCL
Description: :441:12: error: expected '}' :439:10: note: to match this '{' { ^ kernel file: // TODO: Add OpenCL kernel code here. __kernel void dpqc( int Ndim, //__global float *G, __constant float *G, //__global float *B, __constant float *B, __glob...
Open Graph Description: :441:12: error: expected '}' :439:10: note: to match this '{' { ^ kernel file: // TODO: Add OpenCL kernel code here. __kernel void dpqc( int Ndim, //__global float *G, __constant float *G, //__glob...
X Description: :441:12: error: expected '}' :439:10: note: to match this '{' { ^ kernel file: // TODO: Add OpenCL kernel code here. __kernel void dpqc( int Ndim, //__global float *G, __constant fl...
Opengraph URL: https://github.com/nativelibs4java/JavaCL/issues/41
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Why program.build() always says \"}\"didn't match?","articleBody":"\u003ckernel\u003e:441:12: error: expected '}'\r\n\u003ckernel\u003e:439:10: note: to match this '{'\r\n {\r\n ^\r\n\r\nkernel file:\r\n\r\n// TODO: Add OpenCL kernel code here.\r\n\r\n__kernel void dpqc(\r\n\t\t\t\tint Ndim,\r\n\t\t\t\t//__global float *G,\r\n\t\t\t\t__constant float *G,\r\n\t\t\t\t//__global float *B,\r\n\t\t\t\t__constant float *B,\r\n\t\t\t\t__global float *e,\r\n\t\t\t\t__global float *f,\r\n\t\t\t\t__global float *dP,\r\n\t\t\t\t__global float *dQ,\r\n\t\t\t\t__global float *temp1,\r\n\t\t\t\t__global float *temp2,\r\n\t\t\t\t__constant float *Pc,\r\n\t\t\t\t__constant float *Qc,\r\n\t\t\t\t__constant float *Uc,\r\n\t\t\t\t__global float *dU2,\r\n\t\t\t\tint Mdim,\r\n\t\t\t\t__global float *P,\r\n\t\t\t\t__global float *Q,\r\n\t\t\t\t__global int *PQV_flag){ \r\n\t\t\t\t\r\n\t\t\t\tint k;\r\n\t\t\t\tint i = get_global_id(0);\r\n\t\t\t\tfloat tmp1, tmp2;\r\n\t\t\t\tprintf(\"%d\\n\",PQV_flag[i]);\r\n\t\t\t\tif(PQV_flag[i]==1){\t\t// 1~Mdim是只算PQ节点\r\n\t\t\t\t\ttmp1 = 0.0;\r\n\t\t\t\t\ttmp2 = 0.0;\r\n\t\t\t\t\t#pragma unroll\r\n\t\t\t\t\tfor(k=0;k\u003cNdim;k++){ \r\n\t\t\t\t\t\ttmp1 += G[i*Ndim+k]*e[k] - B[i*Ndim+k]*f[k];\r\n\t\t\t\t\t\ttmp2 += G[i*Ndim+k]*f[k] + B[i*Ndim+k]*e[k];\r\n\t\t\t\t\t\t//printf(\"%f\\n\",tmp2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//printf(\"%f\\n\",tmp2);\r\n\t\t\t\t\tP[i] = (e[i]*tmp1 + f[i]*tmp2);\r\n\t\t\t\t\tdP[i] = Pc[i] - (e[i]*tmp1 + f[i]*tmp2);\r\n\t\t\t\t\tQ[i] = f[i]*tmp1 - e[i]*tmp2;\r\n\t\t\t\t\tdQ[i] = Qc[i] - f[i]*tmp1 + e[i]*tmp2;\r\n\t\t\t\t\t//dU2[i] = Uc[i]*Uc[i] - (e[i]*e[i] + f[i]*f[i]); \r\n\t\t\t\t\ttemp1[i] = tmp1;\t\t//中间量,其他内核可以用到\r\n\t\t\t\t\ttemp2[i] = tmp2;\r\n\t\t\t\t}\r\n\t\t\t\telse if(PQV_flag[i]==0){\t// Mdim+1~Ndim-1是只算PV节点\r\n\t\t\t\t\ttmp1 = 0.0;\r\n\t\t\t\t\ttmp2 = 0.0;\r\n\t\t\t\t\t#pragma unroll\r\n\t\t\t\t\tfor(k=0;k\u003cNdim;k++){ \r\n\t\t\t\t\t\ttmp1 += G[i*Ndim+k]*e[k] - B[i*Ndim+k]*f[k];\r\n\t\t\t\t\t\ttmp2 += G[i*Ndim+k]*f[k] + B[i*Ndim+k]*e[k];\r\n\t\t\t\t\t\t//printf(\"%f\\n\",tmp1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tP[i] = (e[i]*tmp1 + f[i]*tmp2);\r\n\t\t\t\t\tdP[i] = Pc[i] - (e[i]*tmp1 + f[i]*tmp2);\r\n\t\t\t\t\t//printf(\"%f %f %f\\n\",Uc[i], e[i], f[i]);\r\n\t\t\t\t\tdU2[i] = Uc[i]*Uc[i] - (e[i]*e[i] + f[i]*f[i]); \r\n\t\t\t\t\t//printf(\"%d %f\\n\", i ,dU2[i]);\r\n\t\t\t\t\ttemp1[i] = tmp1;\t\t//中间量,其他内核可以用到\r\n\t\t\t\t\ttemp2[i] = tmp2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n__kernel void jmcc(\r\n\t\t\t\t\tint M,\r\n\t\t\t\t\tint N,\r\n\t\t\t\t\t//__global float *G,\r\n\t\t\t\t\t__constant float *G,\r\n\t\t\t\t\t//__global float *B,\r\n\t\t\t\t\t__constant float *B,\r\n\t\t\t\t\t__global float *e,\r\n\t\t\t\t\t__global float *f,\r\n\t\t\t\t\t__global float *temp1,\r\n\t\t\t\t\t__global float *temp2,\r\n\t\t\t\t\t__global float *J,\r\n\t\t\t\t\t__global int *PQV_flag){ \r\n\t\t\t\t\t\r\n\t\t\t\t\tint k;\r\n\t\t\t\t\tint Jdim;\r\n\t\t\t\t\tJdim = (2*N-2)*2;\r\n\t\t\t\t\tfloat tmp1,tmp2;\r\n\t\t\t\t\tint i = get_global_id(0);\r\n\t\t\t\t\tif(PQV_flag[i]==1){ \r\n\t\t\t\t\t\tfor(k=0; k\u003cN-1; k++){ \r\n\t\t\t\t\t\t\tif(i != k){ //单次计算H,N,J,L,Jaccobi矩阵一行2*N-2个元素\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2] = -(G[i*N+k]*e[i] + B[i*N+k]*f[i]);\t//Hij\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2+1] = B[i*N+k]*e[i] - G[i*N+k]*f[i];\t//Nij = Bij*ei - Gij*fi\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+(2*N-2)] = J[i*Jdim+k*2+1];\t\t\t//Jij = Nij\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+1+(2*N-2)] = -J[i*Jdim+k*2];\t\t\t//Lij = -Hij\r\n\t\t\t\t\t\t\t\t//printf(\"%f %f %f %f\")\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{ \r\n\t\t\t\t\t\t\t\ttmp1=0;\r\n\t\t\t\t\t\t\t\ttmp2=0;\r\n\t\t\t\t\t\t\t\tfor(int j=0;j\u003cN;j++){ \r\n\t\t\t\t\t\t\t\t\ttmp1 += G[i*N+j]*e[j] - B[i*N+j]*f[j];\r\n\t\t\t\t\t\t\t\t\ttmp2 += G[i*N+j]*f[j] + B[i*N+j]*e[j];\r\n\t\t\t\t\t\t\t\t\t//printf(\"%f\\n\",tmp1);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2] = -tmp1 - G[i*N+k]*e[i] - B[i*N+k]*f[i];\t\t\t\t//Hii\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2+1] = -tmp2 + B[i*N+k]*e[i] - G[i*N+k]*f[i];\t\t\t//Nii\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+(2*N-2)] = tmp2 + B[i*N+k]*e[i] - G[i*N+k]*f[i];\t\t//Jii\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+1+(2*N-2)] = -tmp1 + G[i*N+k]*e[i] + B[i*N+k]*f[i];\t//Lii\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(PQV_flag[i]==0){ \r\n\t\t\t\t\t\tfor(k=0; k\u003cN-1; k++){ \r\n\t\t\t\t\t\t\tif(i != k){\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2] = -(G[i*N+k]*e[i] + B[i*N+k]*f[i]);\t//Hij\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2+1] = B[i*N+k]*e[i] - G[i*N+k]*f[i];\t//Nij = Bij*ei - Gij*fi\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+(2*N-2)] = 0;\t\t\t\t\t\t\t//Rij\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+1+(2*N-2)] = 0;\t\t\t\t\t\t//Sij\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse{ \r\n\t\t\t\t\t\t\t\ttmp1=0;\r\n\t\t\t\t\t\t\t\ttmp2=0;\r\n\t\t\t\t\t\t\t\tfor(int j=0;j\u003cN;j++){ \r\n\t\t\t\t\t\t\t\t\ttmp1 += G[i*N+j]*e[j] - B[i*N+j]*f[j];\r\n\t\t\t\t\t\t\t\t\ttmp2 += G[i*N+j]*f[j] + B[i*N+j]*e[j];\r\n\t\t\t\t\t\t\t\t\t//printf(\"%f\\n\",tmp1);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2] = -tmp1 - G[i*N+k]*e[i] - B[i*N+k]*f[i];\t\t\t//Hii\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+k*2+1] = -tmp2 + B[i*N+k]*e[i] - G[i*N+k]*f[i];\t\t\t//Nii\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+(2*N-2)] = -2*e[i];\r\n\t\t\t\t\t\t\t\tJ[i*Jdim+2*k+1+(2*N-2)] = -2*f[i];\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\t\r\n\t\t\t\t}\r\n\r\n__kernel void transpose(\r\n\t\t\t\t\t\t__global float *input_mat,\r\n\t\t\t\t\t\t__global float *output_mat,\r\n\t\t\t\t\t\tint width,\r\n\t\t\t\t\t\tint height)\r\n{ \r\n\tint row = get_global_id(0);\r\n\t//int col = get_global_id(1);\r\n\tfor(int col=0; col\u003cwidth; col++){\r\n\t\toutput_mat[row*width+col] = input_mat[col*height+row];\r\n\t}\r\n}\r\n\r\n__kernel void qr(\r\n\t\t\t\t\t__local float *u_vec,\r\n\t\t\t\t\t__global float *a_mat, \r\n\t\t\t\t\t__global float *q_mat, \r\n\t\t\t\t\t__global float *p_mat, \r\n\t\t\t\t\t__global float *prod_mat) {\r\n\r\n\t\t\t\t\tlocal float u_length_squared, dot;\r\n\t\t\t\t\tfloat prod, vec_length = 0.0f;\r\n\r\n\t\t\t\t\tint id = get_local_id(0);\r\n\t\t\t\t\tint num_cols = get_global_size(0);\r\n \r\n\t\t\t\t\t/* Load first column into local memory as u vector */\r\n\t\t\t\t\tu_vec[id] = a_mat[id*num_cols];\r\n\t\t\t\t\t//printf(\"%d %f\\n\",id,u_vec[id]);\r\n\t\t\t\t\tbarrier(CLK_LOCAL_MEM_FENCE);\r\n\r\n\t\t\t\t\t/* Find length of first A column and u vector */\r\n\t\t\t\t\tif(id == 0) {\r\n\t\t\t\t\t\tfor(int i=1; i\u003cnum_cols; i++) {\r\n\t\t\t\t\t\t\tvec_length += u_vec[i] * u_vec[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tu_length_squared = vec_length;\r\n\t \r\n\t\t\t\t\t\tvec_length = sqrt(vec_length + u_vec[0] * u_vec[0]);\r\n\t\t\t\t\t\ta_mat[0] = vec_length;\r\n\t\t\t\t\t\tu_vec[0] -= vec_length;\r\n\t\t\t\t\t\tu_length_squared += u_vec[0] * u_vec[0];\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ta_mat[id*num_cols] = 0.0f;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbarrier(CLK_GLOBAL_MEM_FENCE);\r\n\r\n\t\t\t\t\t/* Transform further columns of A */\r\n\t\t\t\t\tfor(int i=1; i\u003cnum_cols; i++) {\r\n\t\t\t\t\t\tdot = 0.0f;\r\n\t\t\t\t\t\tif(id == 0) {\r\n\t\t\t\t\t\t\tfor(int j=0; j\u003cnum_cols; j++) {\r\n\t\t\t\t\t\t\t\t dot += a_mat[j*num_cols + i] * u_vec[j];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbarrier(CLK_LOCAL_MEM_FENCE);\r\n\t\t\t\t\t\ta_mat[id*num_cols + i] -= 2 * u_vec[id] * dot / u_length_squared;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Update Q matrix */\r\n\t\t\t\t for(int i=0; i\u003cnum_cols; i++) {\r\n\t\t\t\t\t q_mat[id*num_cols + i] = -2 * u_vec[i] * \r\n\t\t\t\t\t\t\tu_vec[id] / u_length_squared;\r\n\t\t\t\t }\r\n\t\t\t\t q_mat[id*num_cols + id] += 1;\r\n\t\t\t\t barrier(CLK_GLOBAL_MEM_FENCE); \r\n\r\n\t\t\t\t /* Loop through other columns */\r\n\t\t\t\t for(int col = 1; col \u003c num_cols-1; col++) {\r\n\r\n\t\t\t\t\t /* Load new column into memory */\r\n\t\t\t\t\t u_vec[id] = a_mat[id * num_cols + col];\r\n\t\t\t\t\t barrier(CLK_LOCAL_MEM_FENCE);\r\n\r\n\t\t\t\t\t /* Find length of A column and u vector */\r\n\t\t\t\t\t if(id == col) {\r\n\t\t\t\t\t\t\tvec_length = 0.0f;\r\n\t\t\t\t\t\t\tfor(int i = col + 1; i \u003c num_cols; i++) {\r\n\t\t\t\t\t\t\t\tvec_length += u_vec[i] * u_vec[i];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tu_length_squared = vec_length;\r\n\t\t\t\t\t\t\tvec_length = sqrt(vec_length + u_vec[col] * u_vec[col]);\r\n\t\t\t\t\t\t\tu_vec[col] -= vec_length;\r\n\t\t\t\t\t\t\tu_length_squared += u_vec[col] * u_vec[col];\r\n\t\t\t\t\t\t\ta_mat[col * num_cols + col] = vec_length;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t else if(id \u003e col) {\r\n\t\t\t\t\t\ta_mat[id * num_cols + col] = 0.0f;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbarrier(CLK_GLOBAL_MEM_FENCE);\r\n\r\n\t\t\t\t\t/* Transform further columns of A */\r\n\t\t\t\t\t for(int i = col+1; i \u003c num_cols; i++) {\r\n\t\t\t\t\t\t if(id == 0) {\r\n\t\t\t\t\t\t\tdot = 0.0f;\r\n\t\t\t\t\t\t\tfor(int j=col; j\u003cnum_cols; j++) {\r\n\t\t\t\t\t\t\t dot += a_mat[j*num_cols + i] * u_vec[j];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t barrier(CLK_LOCAL_MEM_FENCE);\r\n \r\n\t\t\t\t\t\t if(id \u003e= col)\r\n\t\t\t\t\t\t\ta_mat[id*num_cols + i] -= 2 * u_vec[id] * \r\n\t\t\t\t\t\t\t\t dot / u_length_squared;\r\n\t\t\t\t\t\t barrier(CLK_GLOBAL_MEM_FENCE);\r\n\t\t\t\t\t }\r\n\r\n\t\t\t\t\t /* Update P matrix */\r\n\t\t\t\t\t if(id \u003e= col) {\r\n\t\t\t\t\t\t for(int i=col; i\u003cnum_cols; i++) {\r\n\t\t\t\t\t\t\tp_mat[id*num_cols + i] = -2 * u_vec[i] * \r\n\t\t\t\t\t\t\t\t u_vec[id] / u_length_squared;\r\n\t\t\t\t\t\t }\r\n\t\t\t\t\t\t p_mat[id*num_cols + id] += 1;\r\n\t\t\t\t\t }\r\n\t\t\t\t\t barrier(CLK_GLOBAL_MEM_FENCE); \r\n\r\n\t\t\t\t\t /* Multiply q_mat * p_mat = prod_mat */\r\n\t\t\t\t\t for(int i=col; i\u003cnum_cols; i++) {\r\n\t\t\t\t\t\t prod = 0.0f;\r\n\t\t\t\t\t\t for(int j=col; j\u003cnum_cols; j++) {\r\n\t\t\t\t\t\t\tprod += q_mat[id*num_cols + j] * p_mat[j*num_cols + i];\r\n\t\t\t\t\t\t } \r\n\t\t\t\t\t\t prod_mat[id*num_cols + i] = prod; \r\n\t\t\t\t\t }\r\n\t\t\t\t\t barrier(CLK_GLOBAL_MEM_FENCE); \r\n\r\n\t\t\t\t\t /* Place the content of prod_mat in q_mat */\r\n\t\t\t\t\t for(int i=col; i\u003cnum_cols; i++) {\r\n\t\t\t\t\t\t q_mat[id*num_cols + i] = prod_mat[id*num_cols + i];\r\n\t\t\t\t\t }\r\n\t\t\t\t\t barrier(CLK_GLOBAL_MEM_FENCE); \r\n\t\t\t\t }\r\n\t\t\t\t}\r\n\r\n__kernel void sevc1(\r\n\t\t\t\t\tint dim,\r\n\t\t\t\t\t__global float *R,\r\n\t\t\t\t\t__global float *Q,\r\n\t\t\t\t\t__global float *b,\r\n\t\t\t\t\t__global float *x,\r\n\t\t\t\t\t__local float *tmp\r\n\t\t\t\t\t){\r\n\t\t\t\t\tfloat tmp1=0;\r\n\t\t\t\t\tint id = get_global_id(0);\r\n\t\t\t\t\tfor(int i=0; i\u003cdim; i++){\r\n\t\t\t\t\t\ttmp[id] += Q[id*dim+i] * b[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbarrier(CLK_GLOBAL_MEM_FENCE);\r\n\t\t\t\t\t//printf(\"b'[%d]=%f\\n\",id,tmp[id]);\r\n\t\t\t\t\tfor(int i=dim-1; i\u003e=0; i--){\r\n\t\t\t\t\t\tif(i==dim-1){\r\n\t\t\t\t\t\t\tx[i] = tmp[i]/R[i*dim+i];\t\t//x(5) = b'(5)/R[5][5];\r\n\t\t\t\t\t\t\t//printf(\"x[%d] = %f %f\\n\",i,x[i],R[i*dim+i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse{\r\n\t\t\t\t\t\t\tfor(int j=i+1; j\u003cdim; j++){\r\n\t\t\t\t\t\t\t\t//if(i\u003cdim-1){\r\n\t\t\t\t\t\t\t\t\ttmp1 += R[i*dim+j]*x[j];\r\n\t\t\t\t\t\t\t\t//}\r\n\t\t\t\t\t\t\t\t//else{\r\n\t\t\t\t\t\t\t\t\t//tmp1=0;\r\n\t\t\t\t\t\t\t\t//}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tx[i] = (tmp[i]-tmp1)/R[i*dim+i];\r\n\t\t\t\t\t\t\ttmp1=0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t__kernel void dpqc_sparse(\r\n\t\t\t\t\t\t\tint Ndim,\r\n\t\t\t\t\t\t\t__constant float *G_data,\r\n\t\t\t\t\t\t\t__constant int *G_ICOL,\r\n\t\t\t\t\t\t\t__constant int *G_ICFR,\r\n\t\t\t\t\t\t\t__constant float *B_data,\r\n\t\t\t\t\t\t\t__constant int *B_ICOL,\r\n\t\t\t\t\t\t\t__constant int *B_ICFR,\r\n\t\t\t\t\t\t\t__global float *e,\r\n\t\t\t\t\t\t\t__global float *f,\r\n\t\t\t\t\t\t\t__global float *dP,\r\n\t\t\t\t\t\t\t__global float *dQ,\r\n\t\t\t\t\t\t\t__constant float *Pc,\r\n\t\t\t\t\t\t\t__constant float *Qc,\r\n\t\t\t\t\t\t\t__constant float *Uc,\r\n\t\t\t\t\t\t\t__global float *dU2,\r\n\t\t\t\t\t\t\tint Mdim,\r\n\t\t\t\t\t\t\t__global float *P,\r\n\t\t\t\t\t\t\t__global float *Q,\r\n\t\t\t\t\t\t\t__global int *PQV_flag){\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tint i = get_global_id(0);\r\n\t\t\t\t\t\t\t//int k;\r\n\t\t\t\t\t\t\tfloat tmp1=0.0, tmp2=0.0, tmp3=0.0, tmp4=0.0;\r\n\t\t\t\t\t\t\t//printf(\"%d %f\\n\",i,G_data[i]);\r\n\t\t\t\t\t\t\t//printf(\"%d\\n\",PQV_flag[i]);\r\n\t\t\t\t\t\t\tif(/*i\u003cMdim*/PQV_flag[i]==1){\r\n\t\t\t\t\t\t\t\ttmp1=0;tmp2=0;tmp3=0;tmp4=0;\r\n\t\t\t\t\t\t\t\tfor(int j = G_ICFR[i]; j \u003c G_ICFR[i+1]; j++){\r\n\t\t\t\t\t\t\t\t\ttmp1 += G_data[j] * e[G_ICOL[j]];\t\t//G*e\r\n\t\t\t\t\t\t\t\t\ttmp2 += G_data[j] * f[G_ICOL[j]];\t\t//G*f\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tfor(int j = B_ICFR[i]; j \u003c B_ICFR[i+1]; j++){\r\n\t\t\t\t\t\t\t\t\ttmp3 += B_data[j] * e[B_ICOL[j]];\t\t//B*e\r\n\t\t\t\t\t\t\t\t\ttmp4 += B_data[j] * f[B_ICOL[j]];\t\t//B*f\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdP[i] = Pc[i] - (e[i]*(tmp1-tmp4) + f[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\tdQ[i] = Qc[i] - (f[i]*(tmp1-tmp4) - e[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\tP[i] = (e[i]*(tmp1-tmp4) + f[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\tQ[i] = (f[i]*(tmp1-tmp4) - e[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(/*i\u003cNdim-1*/PQV_flag[i]==0){\r\n\t\t\t\t\t\t\t\ttmp1=0;tmp2=0;tmp3=0;tmp4=0;\r\n\t\t\t\t\t\t\t\tfor(int j = G_ICFR[i]; j \u003c G_ICFR[i+1]; j++){\r\n\t\t\t\t\t\t\t\t\ttmp1 += G_data[j] * e[G_ICOL[j]];\t\t//G*e\r\n\t\t\t\t\t\t\t\t\ttmp2 += G_data[j] * f[G_ICOL[j]];\t\t//G*f\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tfor(int j = B_ICFR[i]; j \u003c B_ICFR[i+1]; j++){\r\n\t\t\t\t\t\t\t\t\ttmp3 += B_data[j] * e[B_ICOL[j]];\t\t//B*e\r\n\t\t\t\t\t\t\t\t\ttmp4 += B_data[j] * f[B_ICOL[j]];\t\t//B*f\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tdP[i] = Pc[i] - (e[i]*(tmp1-tmp4) + f[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\t//dQ[i] = Qc[i] - (f[i]*(tmp1-tmp4) - e[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\t//printf(\"%f %f %f\\n\",Uc[i], e[i], f[i]);\r\n\t\t\t\t\t\t\t\tdU2[i] = Uc[i]*Uc[i] - (e[i]*e[i] + f[i]*f[i]);\r\n\t\t\t\t\t\t\t\tP[i] = (e[i]*(tmp1-tmp4) + f[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(PQV_flag[i] == 2){\r\n\t\t\t\t\t\t\t\ttmp1=0;tmp2=0;tmp3=0;tmp4=0;\r\n\t\t\t\t\t\t\t\tfor(int j = G_ICFR[i]; j \u003c G_ICFR[i+1]; j++){\r\n\t\t\t\t\t\t\t\t\ttmp1 += G_data[j] * e[G_ICOL[j]];\t\t//G*e\r\n\t\t\t\t\t\t\t\t\ttmp2 += G_data[j] * f[G_ICOL[j]];\t\t//G*f\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tfor(int j = B_ICFR[i]; j \u003c B_ICFR[i+1]; j++){\r\n\t\t\t\t\t\t\t\t\ttmp3 += B_data[j] * e[B_ICOL[j]];\t\t//B*e\r\n\t\t\t\t\t\t\t\t\ttmp4 += B_data[j] * f[B_ICOL[j]];\t\t//B*f\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tdP[i] = Pc[i] - (e[i]*(tmp1-tmp4) + f[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\tdQ[i] = Qc[i] - (f[i]*(tmp1-tmp4) - e[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\tP[i] = (e[i]*(tmp1-tmp4) + f[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t\tQ[i] = (f[i]*(tmp1-tmp4) - e[i]*(tmp2+tmp3));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\r\n__kernel void jmcc_sparse(\r\n\t\t\t\t\tint M,\r\n\t\t\t\t\tint N,\r\n\t\t\t\t\t__constant float *G_data,\r\n\t\t\t\t\t__constant float *B_data,\r\n\t\t\t\t\t__constant float *ICFR,\r\n\t\t\t\t\t__constant int *ROW,\r\n\t\t\t\t\t__constant int *COL,\r\n\t\t\t\t\tint num,\r\n\t\t\t\t\t__global int *PQV_flag,\r\n\t\t\t\t\t__global float *e,\r\n\t\t\t\t\t__global float *f,\r\n\t\t\t\t\t__global float *J){ \r\n\t\t\t\t\t\r\n\t\t\t\t\tint Jdim = (2*N-2)*2;\r\n\t\t\t\t\tfloat tmp1,tmp2,tmp3,tmp4;\r\n\t\t\t\t\tint i = get_global_id(0);\r\n\t\t\t\t\tprintf(\"%2d %d %d \\n\",i,G_data[ROW[i]],G_data[COL[i]]);\t\t\r\n\t\t\t\t\t\tif( PQV_flag[i] == 1 ){\t\t//PQV_flag[i] == 1,表示PQ节点\r\n\t\t\t\t\t\t\tfor(int j=ICFR[i];j\u003cICFR[i+1];j++){\t\t//排零运算\r\n\t\t\t\t\t\t\t\tif(i!=COL[j] \u0026\u0026 COL[j]\u003c7){\t\t\t\t//非对角块时\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + 2*COL[j] ] = -(G_data[j]*e[i] + B_data[j]*f[i]);\t\t\t\t//Hij\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + 2*COL[j] + 1 ] = B_data[j]*e[i] - G_data[j]*f[i];\t\t\t\t\t//Nij\t\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + (2*N-2) + 2*COL[j] ] = B_data[j]*e[i] - G_data[j]*f[i];\t\t//Jij\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + (2*N-2) + 2*COL[j] + 1] = G_data[j]*e[i] + B_data[j]*f[i];\t//Lij\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if(i == COL[j] \u0026\u0026 COL[j]\u003c7){\r\n\t\t\t\t\t\t\t\t\ttmp1=0;tmp2=0;\r\n\t\t\t\t\t\t\t\t\tfor(int k=ICFR[i];k\u003cICFR[i+1];k++){\r\n\t\t\t\t\t\t\t\t\t\ttmp1 += G_data[k]*e[COL[k]] - B_data[k]*f[COL[k]];\t\t\t//求和Gij*ej - Bij*fj\r\n\t\t\t\t\t\t\t\t\t\ttmp2 += G_data[k]*f[COL[k]] + B_data[k]*e[COL[k]];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + 2*COL[j] ] = -tmp1 - G_data[j]*e[i] - B_data[j]*f[i];\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + 2*COL[j] + 1 ] = -tmp2 - G_data[j]*f[i] + B_data[j]*e[i];\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + (2*N-2) + 2*COL[j] ] = tmp2 - G_data[j]*f[i] + B_data[j]*e[i];\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + (2*N-2) + 2*COL[j] + 1 ] = -tmp1 + G_data[j]*e[i] - B_data[j]*f[i];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if( PQV_flag[i] == 0 ){\t//PQV_flag[i] == 0,表示第i个节点从PQ节点变为了PV节点\r\n\t\t\t\t\t\t\tfor(int j=ICFR[i];j\u003cICFR[i+1];j++){\r\n\t\t\t\t\t\t\t\tif(i!=COL[j] \u0026\u0026 COL[j]\u003c7){\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + 2*COL[j] ] = -(G_data[j]*e[i] + B_data[j]*f[i]);\t\t\t\t//Hij\r\n\t\t\t\t\t\t\t\t\tJ[ i*Jdim + 2*COL[j] + 1 ] = B_data[j]*e[i] - G_data[j]*f[i];\t\t\t//Nij\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse if(i == COL[j] \u0026\u0026 COL[j]\u003c7){\r\n\t\t\t\t\t\t\t\t\ttmp1=0;tmp2=0;\r\n\t\t\t\t\t\t\t\t\tfor(int k=ICFR[i];k\u003cICFR[i+1];k++){\r\n\t\t\t\t\t\t\t\t\t\ttmp1 += G_data[k]*e[COL[k]] - B_data[k]*f[COL[k]];\t\t\t//求和Gij*ej - Bij*fj\r\n\t\t\t\t\t\t\t\t\t\ttmp2 += G_data[k]*f[COL[k]] + B_data[k]*e[COL[k]];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tJ[i*Jdim + 2*COL[j]] = -tmp1 - G_data[j]*e[i] - B_data[j]*f[i];\r\n\t\t\t\t\t\t\t\t\tJ[i*Jdim + 2*COL[j]+1] = -tmp2 - G_data[j]*f[i] + B_data[j]*e[i];\r\n\t\t\t\t\t\t\t\t\tfor(int m=0;m\u003c(N-1);m++)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tJ[i*Jdim+(2*N-2)+2*m]=-2*e[i];\r\n\t\t\t\t\t\t\t\t\t\tJ[i*Jdim+(2*N-2)+2*m+1]=-2*f[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\nJAVA FILE:\r\npackage Flow_OpenCL;\r\n\r\nimport java.io.File;\r\nimport java.io.IOException;\r\n\r\nimport com.nativelibs4java.*;\r\nimport com.nativelibs4java.opencl.CLBuildException;\r\nimport com.nativelibs4java.opencl.CLContext;\r\nimport com.nativelibs4java.opencl.CLDevice;\r\nimport com.nativelibs4java.opencl.CLException;\r\nimport com.nativelibs4java.opencl.CLKernel;\r\nimport com.nativelibs4java.opencl.CLPlatform;\r\nimport com.nativelibs4java.opencl.CLProgram;\r\nimport com.nativelibs4java.opencl.CLQueue;\r\nimport com.nativelibs4java.opencl.JavaCL;\r\nimport com.nativelibs4java.util.IOUtils;\r\n\r\npublic class Flow1 {\r\n\t\r\n\tpublic static void main(String[] args) throws Exception {\r\n\t\t\r\n\t\tCLPlatform[] Platforms = JavaCL.listPlatforms();\t\t\t\t\t//查询可用平台\r\n\t\tCLDevice device = Platforms[0].getBestDevice();\t\t\t\t\t\t//调用设备\r\n\t\tString platformName = Platforms[0].getName();\t\t\t\t\t\t//获取平台名称\r\n\t\tString deviceName = device.getName();\t\t\t\t\t\t\t\t//获取设备名称\r\n\t\tSystem.out.println(\"平台:\"+platformName+\" 设备:\"+deviceName);\t\t//打印平台和设备名称\r\n\t\r\n\t\t//CLContext context = JavaCL.createBestContext();\t\t//为设备创建上下文\r\n\t\tCLContext context = JavaCL.createContext(null, device);\r\n\t\t//CLQueue queue = context.createDefaultQueue((CLDevice.QueueProperties[] )null);\r\n\t\tCLQueue queue = context.createDefaultProfilingQueue();\r\n\t\t\r\n\t\t\r\n\t\t//jmcc.cl-done\r\n\t\t//dpqc_sparse.cl-done\r\n\t\t//qr.cl-done\r\n\t\t//transpose.cl-done\r\n\t\t//sevc1.cl-done\r\n\t\tString kernelText = IOUtils.readText(new File(\"E:\\\\LSH\\\\JavaCL\\\\src\\\\Flow_OpenCL\\\\FLOW.cl\"));\r\n\t\tCLProgram program = context.createProgram(kernelText);\r\n\t\t/*\r\n\t\tprogram.addInclude(\"E:\\\\LSH\\\\JavaCL\\\\src\\\\Flow_OpenCL\\\\qr.cl\");\r\n\t\tString qrText = IOUtils.readText(new File(\"E:\\\\LSH\\\\JavaCL\\\\src\\\\Flow_OpenCL\\\\qr.cl\"));\r\n\t\tprogram.addSource(qrText);\r\n\t\t*/\r\n\t\tprogram.build();\r\n\t\t\r\n\t\tCLKernel[] kernels = program.createKernels();\r\n\t\tSystem.out.println(\"完成\");\r\n\t\t\r\n\t\t\r\n\t}\r\n\t\r\n}\r\n","author":{"url":"https://github.com/liushaohuai5","@type":"Person","name":"liushaohuai5"},"datePublished":"2019-06-24T07:08:50.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/41/JavaCL/issues/41"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:d1147d61-48e2-9c1b-160b-cd1d1e26f3aa |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B1FA:46928:38833D8:4F0E6F0:69793A6C |
| html-safe-nonce | 1304505667bebf5dabd745f2ed67e7cdaff79a47ae15a8766aef9b87d4ad740f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCMUZBOjQ2OTI4OjM4ODMzRDg6NEYwRTZGMDo2OTc5M0E2QyIsInZpc2l0b3JfaWQiOiI3ODY0MzIyNzk5OTQwNzQ1ODM2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 75823025d043c28cfa21f19634f52298a93eb9618f929cdf2eae82c0f08a81f3 |
| hovercard-subject-tag | issue:459725754 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nativelibs4java/JavaCL/41/issue_layout |
| twitter:image | https://opengraph.githubassets.com/ce8211188ba3fcf8ea16cef77dbb43e21291087e849927f8fae75b32603af8b2/nativelibs4java/JavaCL/issues/41 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/ce8211188ba3fcf8ea16cef77dbb43e21291087e849927f8fae75b32603af8b2/nativelibs4java/JavaCL/issues/41 |
| og:image:alt | :441:12: error: expected '}' :439:10: note: to match this '{' { ^ kernel file: // TODO: Add OpenCL kernel code here. __kernel void dpqc( int Ndim, //__global float *G, __constant float *G, //__glob... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | liushaohuai5 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 33d60f7e5c009874ca1d3bae4ff07a11d7994e6b4b54cf6e64121c500cc10bc5 |
| turbo-cache-control | no-preview |
| go-import | github.com/nativelibs4java/JavaCL git https://github.com/nativelibs4java/JavaCL.git |
| octolytics-dimension-user_id | 11545921 |
| octolytics-dimension-user_login | nativelibs4java |
| octolytics-dimension-repository_id | 31854274 |
| octolytics-dimension-repository_nwo | nativelibs4java/JavaCL |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 31854274 |
| octolytics-dimension-repository_network_root_nwo | nativelibs4java/JavaCL |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 2391a1af9753b168299d1cbf80f8bb67be4430bd |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width