Abstract: The present invention extends to methods, systems, and computer program products for automatically optimizing memory accesses by kernel functions executing on parallel accelerator processors. A function is accessed. The function is configured to operate over a multi-dimensional matrix of memory cells through invocation as a plurality of threads on a parallel accelerator processor. A layout of the memory cells of the multi-dimensional matrix and a mapping of memory cells to global memory at the parallel accelerator processor are identified. The function is analyzed to identify how each of the threads access the global memory to operate on corresponding memory cells when invoked from the kernel function. Based on the analysis, the function altered to utilize a more efficient memory access scheme when performing accesses to the global memory. The more efficient memory access scheme increases coalesced memory access by the threads when invoked over the multi-dimensional matrix.
Abstract: Story generation models are disclosed for assisting users, such as young children, to create stories, for example. These story generation models may implement several tools for helping users manipulate sophisticated images, such as for changing the perspective view of any images being incorporated into a story being created, for example. Other tools may be provided that may request the users to handwrite or type the names of any selected images they may desire incorporating into a story for educational purposes. The story generation models may also implement tools for defining and/or enforcing rules during the story generation process, such as requesting the users to spell correctly and/or providing the correct spelling for any misspellings, for example. Further, the story generation models may utilize tools for enabling users to collaborate in real time, such as by allowing the users to see other's story contributions.